字元反轉演算法
Ⅰ 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;
}