当前位置:首页 » 操作系统 » 字符反转算法

字符反转算法

发布时间: 2022-11-02 09:14:42

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;
}

两个明显的误解:

  1. char* a="12***"; 这样定义是错误的。这样 a指向字符串常量的指针。而字符串常量是不能改变的。所以停止运行。

  2. 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;
}

热点内容
安卓手机图标怎么设置提示 发布:2025-05-13 23:07:56 浏览:805
香蕉FTP下载 发布:2025-05-13 23:07:11 浏览:938
for循环sql语句 发布:2025-05-13 22:45:49 浏览:19
python实用代码 发布:2025-05-13 22:19:41 浏览:843
dede数据库的配置文件 发布:2025-05-13 22:19:08 浏览:970
给字符加密 发布:2025-05-13 22:12:32 浏览:975
数据库系统实现答案 发布:2025-05-13 22:11:57 浏览:143
哪个软件可以共存安卓 发布:2025-05-13 22:10:15 浏览:555
上传宦妃天下野泉肉肉 发布:2025-05-13 22:10:10 浏览:411
洗眼睛解压 发布:2025-05-13 21:58:28 浏览:275