字符串反转c语言库函数,编写一个实现字符串反转的函数

用C语言,翻转字符串,(例如输入“ABCD”,则输出“DCBA”)!方法越多越好!!

【方法一】

创新互联建站主要业务有网站营销策划、网站制作、成都网站设计、微信公众号开发、小程序定制开发、H5开发、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、全网整合营销推广资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。 

//也是最简单的有点投机

#include stdio.h

int main(){

char str[]="ABCD";

int i;

for(i=3;i=0;i--) printf("%c",str[i]);

return 0;

}

【方法二】

/*

用指针的,将第一个与最后一个互换,第二个与倒数第二个互换……直到逆置完成

*/

#include stdio.h

#include string.h

int main(){

char str[]="ABCD",*start,*end,t;

int len,i;

len=strlen(str);

start=str;

end=str[len-1];

while(startend){

t=*start;

*start=*end;

*end=t;

start++;

end--;

}

printf("REVERSED:\n");

for(i=0;str[i];i++) printf("%c",str[i]);

return 0;

}

【方法三】

//用堆栈的性质来实现

#include stdio.h

#include string.h

#include stdlib.h

#define MAXSTACK 100

char pop(struct stack *stk);

void push(char ch,struct stack *stk);

int empty(struct stack *stk);

struct stack{

int top;

char str[MAXSTACK];

};

int main(void)

{

int i,len_str;

char str[MAXSTACK];

struct stack s;

s.top=-1;

printf("\nInput the string please:");/*输入你要逆置的字符串e.g.“ABCD”*/

gets(str);

len_str=strlen(str);

for(i=0;ilen_str;i++)

push(str[i],s);

printf("The disorder is:");

for(i=0;ilen_str;i++){

if(!empty(s))

printf("%c",pop(s));

}

getch();

return 0;

}

char pop(struct stack *stk){

return stk-str[stk-top--];

}

void push(char ch,struct stack *stk){

if(stk-top==MAXSTACK-1){

printf("\nOVERFLOW!\n");

exit(1);

}

else stk-str[++(stk-top)]=ch;

return;

}

int empty(struct stack *stk){

return (stk-top==-1);

}

还可以用递归的思想来解决该问题,这里就不多说了……

C语言反转字符串怎么反转?

读取字符串,浏览字符串每一个字符,

如果是空格就输出空格,

否则就保存当前位置,从当前位置移动到下一个空格或字符尾前,

从当前位置开始反向输出,直达回到保存的位置

最后输出回车,结束

//以下是C语言版的,需要的话,可以看看

#includestdio.h

#includestdlib.h

#includestring.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;

}

C语言字符串逆转函数

只需要将字符数组的前后数据进行交换就行了。

#include stdio.h

#include string.h

char* reverse(char *x)

{

int i, tem, len = strlen(x);

int n = len / 2;

for (i = 0; i = n; i++)  // 前后交换数据

{

tem = x[i];

x[i] = x[len - 1 - i];

x[len - 1 - i] = tem;

}

return x;

}

int main()

{

char p[] = "abcdefghijk";

printf("relust = %s\n", reverse(p));

return 0;

}

c语言如何实现字符串的反转

#includestdio.h

void reverse(char s[])

{ int i,j;

char c;

for(i=0; s[i]; i++);

for(i--,j=0; ji;)

{ c=s[j];

s[j++]=s[i];

s[i--]=c;

}

}

int main()

{ char s[200];

gets(s);

reverse(s);

puts(s);

return 0;

}

C语言中如何实现字符串的反转?

#includestdio.h

#includestring.h

string_change(char * p)

{

int i,len;

char temp;

len = strlen(p);

//printf("%d \n", len);

//test printf("%d\n",len);

for(i=0; i(len/2); i++)

{

temp = p[i];

p[i] = p[len-1-i];

p[len-1-i] = temp; 

}

}

int main(void)

{

char a[20] = "1234567890";

printf("%s\n",a);

string_change(a);

printf("%s\n",a);

return 0;

}

两个明显的误解:

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

c中数组是从0开始编号的。所以字符串最后一个字符是a[len-1];


网页标题:字符串反转c语言库函数,编写一个实现字符串反转的函数
浏览地址:http://scyanting.com/article/dsgipoe.html