字符反转算法
Ⅰ c语言中如何实现字符串的反转
#include<stdio.h>
#include<string.h>
string_change(char*p)
{
inti,len;
chartemp;
len=strlen(p);
//printf("%d ",len);
//testprintf("%d ",len);
for(i=0;i<(len/2);i++)
{
temp=p[i];
p[i]=p[len-1-i];
p[len-1-i]=temp;
}
}
intmain(void)
{
chara[20]="1234567890";
printf("%s ",a);
string_change(a);
printf("%s ",a);
return0;
}
两个明显的误解:
char* a="12***"; 这样定义是错误的。这样 a指向字符串常量的指针。而字符串常量是不能改变的。所以停止运行。
c中数组是从0开始编号的。所以字符串最后一个字符是a[len-1];
Ⅱ java如何实现字符串的反转及替换
反转:
public class test{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入:");
String s1 = input.nextLine();//得到输入的字符串
System.out.print("翻转后:");
for(int i=s1.length()-1;i>=0;i--){
System.out.print(s1.charAt(i));
}
}
}
或者
import java.util.*;
public class StringChange{
public static void main(String[] args){
System.out.println("Please enter the String:");
String str = new Scanner(System.in).nextLine(); //输入字符串
String s2[] = str.split("\\s"); // \s 以空格为分隔符拆分字符串,并保存到数组s2里面
for (int i = s2.length-1; i >= 0; i--) { //反向输出数组
System.out.print(s2[i]+" ");
}
}
}
Ⅲ Shell中字符串反转的几种技巧
第一步首先打开电脑里面的eclipse软件,创建java项目和类,如下图所示:
第二步在类中输入如下代码进行测试实现字符串反转:
public static String reverse1(String s){
char []array=s.toCharArray();
String resever="";
for(int i=array.length-1;i>=0;i--){
resever+=array[i];
}
return resever;
}
第三步点击运行,可以看到字符串已经实现反转了,如下图所示:
第四步我们也可以使用jdk自带的方法,如下代码:
public static String reverse2(String s) {
return new StringBuffer(s).reverse().toString();
}
5
第五步进行运行测试,可以看到方法一和方法二都实现了字符串反转的功能,如下图所示:
Ⅳ 如何快速将字符串反转
使用 StringBuilder 或者 stringBuffer 的 reverse() 方法。以上就是我在黑马程序员学Java的时候老师教给我的,分享给你!很高兴您能一直采纳我的回答,希望一直为您提供帮助
Ⅳ 算法:将url字符串反转
解题思路:1)先将字符串URL用“.”进行分割,产生一个字符串数组
2)对字符串中的数组中的每一个数组元素进行反转
坑点 :“.”
在正则表达式中,“.”是具有特殊意义的元字符,能够匹配除了换行符之外的所有的单个字符,如果使用split(".")将得到含有0个元素的数组
In regular expression, the "." is a metacharacter with special meaning which matches any single character except a newline. You got an array with zero element because "." mataches any charachers in your string.
字符串分割
Ⅵ C语言 字符串反转函数(不使用库函数)
char *revstr(char *str, size_t len)
{
char *start = str;
char *end = str + len - 1;
char ch;
if (str != NULL)
{
while (start < end)
{
ch = *start;
*start++ = *end;
*end-- = ch;
}
}
return str;
}
Ⅶ 如何用递归的方法将字符串进行反转
伪代码:
字符串反转(字符串s){
if(s的长度大于1){
returns的最后一个字符+反转(s去掉最后一个字符后剩下的部分);
}else{
returns;
}
}
Ⅷ 如何让一个字符串反转
package com;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class StringReverse {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String string = " ";
StringBuffer retBuffer = new StringBuffer("");
/*
* 方法一
*/
try {
string = br.readLine();
} catch (IOException ex) {
System.out.println(ex);
}
char[] retChar = new char[string.length()];
for (int i = string.length() - 1, j = 0; i >= 0; i--, j++) {
retChar[j] = string.charAt(i);
}
System.out.println(String.valueOf(retChar));
/*
* 方法二
*/
StringBuffer sb = new StringBuffer(string);
System.out.println(sb.reverse().toString());
System.out.println(reverse(string));
}
/*
* 堆栈的方法反转
*/
public static String reverse(String in) {
String input = in;
String output;
//执行反转
Stack<Character> theStack = new Stack<Character>();
for (int j = 0; j < input.length(); j++) {
char ch = input.charAt(j);
theStack.push(ch);
}
output = "";
while (!theStack.isEmpty()) {
char ch = theStack.pop();
output = output + ch;
}
return output;
}
}
Ⅸ C语言字符串数组反转相关的问题
c语言的问题字符串反转可以使用下列两种方法:
使用Array.Reverse方法
对于字符串反转,我们可以使用.NET类库自带的Array.Reverse方法
public
static
string
ReverseByArray(string
original)
{
char[]
c
=
original.ToCharArray();
Array.Reverse(c);
return
new
string(c);
}
可以使用栈后进先出的特性来对数组进行反转。先将数组所有元素压入栈,然后再取出,顺序很自然地就与原先相反了。
public
static
string
ReverseByStack(this
string
original)
{
Stack<char>
stack
=
new
Stack<char>();
foreach
(char
ch
in
original)
{
stack.Push(ch);
}
char[]
c
=
new
char[original.Length];
for
(int
i
=
0;
i
<
original.Length;
i++)
{
c[i]
=
stack.Pop();
}
return
new
string(c);
}
Ⅹ C语言反转字符串怎么反转
读取字符串,浏览字符串每一个字符,
如果是空格就输出空格,
否则就保存当前位置,从当前位置移动到下一个空格或字符尾前,
从当前位置开始反向输出,直达回到保存的位置
最后输出回车,结束
//以下是C语言版的,需要的话,可以看看
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define String_MaxSize 10000 //读入字符串的最大长度
int main()
{
char stringPtr[String_MaxSize]; //保存读入的字符串
//循环读取直到文件尾
while(gets(stringPtr))
{
int stringPtr_length = strlen(stringPtr); //字符串的长度
int i;
//循环读取整段字符串
for(i = 0; i < stringPtr_length; i++)
{
//如果字符为空格
if(stringPtr[i] == ' ')
{
//直接输出空格
printf(" ");
}
//如果字符非空格
else
{
int tempPos = i; //保存当前i的位置
int j; //代替i进行反向移动
//读取到下一个空格或字符串尾的前一个位置
while(i < stringPtr_length && stringPtr[i] != ' ')
{
i++;
}
i--;
//输出单词
for(j = i; j >= tempPos; j--)
{
putchar(stringPtr[j]);
}
}
}
//输出回车
printf("\n");
}
//输出回车
printf("\n");
return 0;
}