字符串的逆序(看收藏里面的题)
第一种方式:
#include <stdio.h>
void f(char *p);
int main()
{
char s[1000];
gets(s);
f(s);
printf("%s",s);
return 0;
}
void f(char *p)
{
int i=0;
int q,k=0;
while(p[i]!='\0')
{
i++;
}
while(k<i)
{
q=p[k];
p[k]=p[i-1];
p[i-1]=q;
k++;
i--;
}
}
第二种方式:
#include <stdio.h>
#include <string.h>
int main() {
char s[20];
// 使用fgets()替代gets()以防止缓冲区溢出
fgets(s, sizeof(s), stdin);
// 去除末尾的换行符'\n'(如果存在)
if (s[strlen(s) - 1] == '\n') {
s[strlen(s) - 1] = '\0';
}
int len = strlen(s);
int t = len - 1;
int h = 0;
for(int i = 0; i < len / 2; i++) {
char temp = s[h];
s[h] = s[t];
s[t] = temp;
h++;
t--;
}
printf("%s\n", s);
return 0;
}
注意!!!!!
统计长度的时候这两个必须相等!!!!!!!!!!!!1