700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【C语言】实现字符串逆序输出(包含空格的字符串)

【C语言】实现字符串逆序输出(包含空格的字符串)

时间:2024-01-10 21:22:30

相关推荐

【C语言】实现字符串逆序输出(包含空格的字符串)

【1】目的:实现字符串的逆序输出,比如I believe you.变为you. believe I的形式。

【2】基本思路:这里我们先创建一个可以实现逆序打印的函数,将字符串逆序变为.uoy eveileb I,然后再将每个字符串逆序,从而变为you. believe I的样式。

【3】总结:先创建一个逆序打印函数,然后进行整个字符串的逆序,再通过空格/‘\0’为分界实现每个字符串的逆序。

【4】代码实现:

1.字符串函数创建

创建两个指针分别指向最左端字符和最右端字符,left<right时,将最左端与最右端字符交换,left++ right--实现逐个字符交换。

void reverse(char* left, char* right)//逆序字符串{while (left < right) //交换左右字符{int temp = *left;*left = *right;*right = temp;left++;right--;}}

void main(){char arr[100] = { 0 };gets_s(arr);char* left = arr;char* right = arr + strlen(arr) - 1;reverse(left, right);}

注意:VS中gets( )函数写成gets_s( )才可以运行

​​​​​​​2.创建两个新的指针变量,char*start指向每个字符串的第一个字符,因此得放在循环中。char*ch遍历每个字符串从而确定字符串最后一个字符。可以发现当*ch为‘ ’或是‘\0’时读取一个字符串结束,以此作为循环的判断条件

char* ch = arr;while (*ch){char* start = ch;while (*ch != ' ' && *ch != '\0')//判断字符串结束{ch++; //指针后移,最终指向‘ ’或‘\0’}reverse(start, ch-1);//传参 传入首指针和尾指针if(*ch != '\0') //如果为‘\0’则表示一整句话结束,退出循环{ch++;}}

3.输出

printf("%s", arr);

4.完整代码实现

#include<string.h>void reverse(char* left, char* right)//逆序字符串{while (left < right) //交换左右字符{int temp = *left;*left = *right;*right = temp;left++;right--;}}void main(){char arr[100] = { 0 };gets_s(arr);char* left = arr;char* right = arr + strlen(arr) - 1;reverse(left, right);char* ch = arr;while (*ch){char* start = ch;while (*ch != ' ' && *ch != '\0')//判断字符串结束{ch++; //指针后移,最终指向‘ ’或‘\0’}reverse(start, ch-1);//传参 传入首指针和尾指针if(*ch != '\0') //如果为‘\0’则表示一整句话结束,退出循环{ch++;}}printf("%s", arr);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。