反序字符串,只需铅纤要将首尾字符依次调换即可。
#include
#include
// 反序字符串x并返回
char* reverse(char *x)
{
int len 激埋= strlen(x);
int i, n = len / 2;
char tem;
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 str[100];
printf("input a string 明激蚂:");
gets(str);
puts(reverse(str));
return 0;
}
楼上的程序存在两个缺点:1.循环次数过多 2.多次调用putchar,效率过低
lz可以参考下面的代码,效率比较高一点,而且相对来指备说代码歼逗卜比较漂亮一点。
#include
#include
#define SWAP(x, y) { \
x = x ^ y; \
y = x ^ y; \
x = x ^ y; \
}
void reserveArr(char *ch)
{
int i = 0;
int j = strlen(ch) - 1;
while (i < j) {
SWAP(ch[i], ch[j]);
i++;
j--;
}
}
int main()
{
char ch[1024] = {0};
gets(ch);
reserveArr(ch);
printf("ch = %s\n"氏穗, ch);
}
#include "stdio.h"
#include "string.h"
void main()
{ void inverse(char str[]);
char str[100];
printf("请输入一行字符串:物态\n");
scanf("%s",str);
inverse(str);
printf("反序字符串为铅锋:\n");
printf("%s\n",str);
}
void inverse(char str[])
{ char t;
int i,k;
k=strlen(str)-1;
for(i=0;i<(strlen(str)/槐蚂晌2+1);i++,k--)
{
t=str[i];
str[i]=str[k];
str[k]=t;
}
}
用栈
#include<穗蚂拆stdio.h>
#include
main()
{
char a[100];
int n,i;
gets(a);
n=strlen(a)-1;
for(i=n;i>=0;i--)
putchar(a[i]);
getch();
}
win-tc试物唯过了猜枣。。