永发信息网

c语言字符串逆反带空格

答案:4  悬赏:30  手机版
解决时间 2021-03-01 10:10
12 void func(char instr[],char outstr[])
13 {
14 int i = 0;
15 int n = strlen(instr);
16 for(i = 0; i < n; i++)
17 {
18 outstr[i] = instr[n-1-i];
19 }
20 outstr[n] = '\0';
21 printf("%s\n",outstr);
22 }
23 int main(void)
24 {
25 char instr[100] = {};
26 char outstr[100] = {};
27 printf("input a string:\n");
28 scanf("%s",instr);
29 printf("%d\n",strlen(instr));
30 func(instr,outstr);
31
32 return 0;
33 }
代码如上,为什么instr里面含有空格,strlen函数求的值只有空格前的字符?要怎么改?
最佳答案
#include<stdio.h>
#include<string.h>
void func(char instr[],char outstr[])
{
int i = 0;
int n = strlen(instr);
for(i = 0; i < n; i++)
{
outstr[i] = instr[n-1-i];
}
outstr[n] = '\0';
printf("%s\n",outstr);
}
int main(void)
{
char instr[100] ;
char outstr[100] ;
printf("input a string:\n");
gets(instr);
printf("%d\n",strlen(instr));
func(instr,outstr);

return 0;
}
这句scanf("%s",instr);
因为%s,在输入时遇到空格结束输入。不能将带有空格的字符串输入
全部回答
反转字符串为何要这么麻烦。。 void reverse(char s[]) {     int i,j,c;     for(i = 0, j = strlen(s)-1; i < j; ++i,--j)     {         s[c] = s[i];         s[i] = s[j];         s[j] = s[c];     } }空格不是strlen的问题,是scanf的问题,scanf读取到空格就认为字符串结束了没有继续往下读取,可以自己写一个读字符串的函数,如下 void getline(char s[]) {     int c,i = 0;     while((c = getchar()) != EOF && c != '\n')         s[i++] = c;     if(c == '\n')         s[i++] = c;     s[i] = '\0'; } 亦可以直接使用gets函数读取一整行
通过gets输入字符串后就开始遍历字符串,如果字符不是空格直接输出并向后遍历,如果是空格输出一个空格,并向后遍历直到不是空格为止,不作输出处理。 参考代码: #include&lt;stdio.h&gt; int main() { int i; char a[100]; gets(a); for(i=0;a[i]!=&apos;\0&apos;;){ if(a[i]==&apos; &apos;){//如果是空格输出一个空格,并向后遍历直到不是空格为止,中间不输出 printf(&quot; &quot;); while(a[i]==&apos; &apos;) i++; } else{//如果字符不是空格直接输出并向后遍历 printf(&quot;%c&quot;,a[i]); i++; } } printf(&quot;\n&quot;); return 0; }
同意一楼关于空格问题的说法。但是一楼给出的代码有点小瑕疵: 首先,反转字符串的代码中的for循环体内只是将数组的下标互换,并未将对应的元素交换; 其次,读取字符串的那个函数的第7、8行,个人觉得有问题,应改为:s[i++] = "\0";
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天龙八部中珍兽技能新学习旧技能没有了
室内浪漫求婚创意有哪些 浪漫求婚创意布置
iphone6 plus数据线和ipad mini 3数据线一样
社区卫生服务的特点是A.有效、广泛、简便、综
谁知道那种各大购物网站下单有折扣的网赚在哪
公司没有买社保
夸一段文字寓意深刻怎样形容
宣统三年一元银币曲须龙现在估价是多少钱
山阴县如意活性炭有限公司这个地址在什么地方
在横线里填上适当的单位名称.(1)一只山羊
螃蟹黄的营养有那些,螃蟹肉的营养有那些,长
三国7青龙白虎朱雀玄武怎么得到?
函数f(x)=lnx-2/x+a在区间(2,3)内有零点,则实
津榆线/聚康路(路口)这个地址在什么地方,我
重庆到北京机票什么时候比较便宜
推荐资讯
福来家具大卖场怎么去啊,有知道地址的么
中行网银下午6点25分汇款给建行,为什么第二
轿车的贴膜是买回来就做呢?还是要过段时间再
交通事故致人受伤。当时积极抢救,立马报警,
什么意思?Wish many good wishes for the ho
丽颜美容SPA养生会所地址有知道的么?有点事
简述我国法律体系。
光棍节几月几日
去香港做全身体检多少钱?
【没有关系我们只是朋友】没关系我们只是朋友
4G18在北京用10W40和5W40这两个粘度哪个适合
北京市顺义区通顺路西丰乐村村北大道邮编
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?