您现在的位置是:首页 >技术教程 >(c语言)将一句话的单词进行倒置,标点不倒置(i like beijing.)网站首页技术教程
(c语言)将一句话的单词进行倒置,标点不倒置(i like beijing.)
简介(c语言)将一句话的单词进行倒置,标点不倒置(i like beijing.)
目录
3.用scanf("%[^ ]s")读取也可以达到同样的效果
例子:
"I like beijing.",经过处理后变为:"beijing. like I"。
//字符串长度不超过100。(注意不是简单的将字符串全部倒置);
思路方法:
方法:
第一步:先将字符串全部倒置;
第二步:将每个单词进行倒置;
方法2:
也可以先进行单词倒置,在将整个字符串倒置;
图解:
(分板块)代码的实现:
一.字符串的获取(3种简单的方法)
注意:
这里我们不能通过循环用scanf函数来读取;因为scanf()函数遇到空格就停止读取;
例如
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
char arr[100];
int i = 0;
while (scanf("%s", &arr) != EOF)
{
;
}
return 0;
}
当输入 “ i like beijing." 时,arr的内容为:
解决方法:
1.用gets()函数,即使中间有空格也会读取
#include <stdio.h>
int main()
{
char arr[100];
printf("获取字符
");
gets(arr);
printf("
arr字符串的内容为:%s
",arr);
return 0;
}
运行结果:
2.用fgets()函数
gets(arr,100,stdin)
用法:fgets(读取的字符放大位置(如要放入arr里),限制最多读取多少(如限制最多读取100字符,在哪里读取(如从键盘上获取stdin));
stdin——>标准输入—键盘;
注意:fgets会把( )回车作为字符获取;如果 影响代码实现,不想要 ,可以在读取后,计算字符串长度然后将最后一个字符换为 ;
#include <stdio.h>
int main()
{
char arr[100];
printf("获取字符
");
fgets(arr,100,stdin);
printf("
arr字符串的内容为:%s
", arr);
return 0;
}
删去 :
#include <stdio.h>
int main()
{
char arr[100];
printf("获取字符
");
fgets(arr,100,stdin);
//计算字符串长度(不用sizeof的原因在在其他博客作品
//”strlen和sizeof的区别及用法中“有写过)
int len = strlen(arr);
//将最后一个字符
用 取代,从而删去
arr[len - 1] = '