#include <stdio.h>
#include <string.h>
char* dz();
int main(int argc, const char *argv[])
{
char arr[30]="";
gets(arr);
int len=strlen(arr);
char *end=arr+len-1;
dz(arr,end);
end=arr;
char* star=arr;
while(*end){
if(*end!=' '){
}else{
dz(star,end-1);
star=end+1;
}
end++;
}
dz(star,end-1);//当指针指向'\0'的地址时,会跳出while循环,此时需单独调用一次dz函数。来保证最后一个单词的翻转。
puts(arr);
return 0;
}
char *dz(char *star,char *end){
while(end>star){
*star=*star^*end;
*end=*star^*end;
*star=*star^*end;
star++;
end--;
}
}
实现字符串以单词为单位进行逆置输出
这篇博客展示了如何使用C语言中的字符位运算实现字符串的逐字符翻转。通过`gets()`获取输入字符串,`strlen()`计算长度,然后使用`^`运算符交换字符位置。最后,`dz()`函数完成整个过程并输出结果。
摘要由CSDN通过智能技术生成