本人想任意输如一个单词,然后反序输出。但是本人只能自由输出4个字母。4个以上的就被截断了 ?求指导

C语言 码拜 7年前 (2017-04-14) 919次浏览
#include<stdio.h>
#include<string.h>
int main(void)
{
int N,index;
char ss[30];
N=strlen(ss);
for(index=0;index<=N;index++)
{
scanf(“%c”,&ss[index]);
}
for(index=N;index>=0;index–)
{
printf(“%c”,ss[index]);
}
printf(“\n”);
return 0;
}
解决方案

40

strlen 获取的是以\0结尾的字符串长度
你的ss还没有初始化就使用strlen是未定义行为

40

首先。你的ss数组没有初始化。那个strlen的使用是未定义的。其次。%c会把回车也读入。你可以直接用%s直接输入字符串(更简单)。然后在循环输出。
望采纳。

40

#include<stdio.h>
#include<string.h>
int main(void)
{   
    int N,index;
char ss[30] = {0};
index=0;
    N = 30;
for(;index<=N;index++)
{
scanf("%c",&ss[index]);
    if(ss[index] == "\n") break;
}
  printf("%c", "\n");
for(int i=index-1;i>=0;i--) 
{
printf("%c",ss[i]); 
}
printf("\n");
return 0;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明本人想任意输如一个单词,然后反序输出。但是本人只能自由输出4个字母。4个以上的就被截断了 ?求指导
喜欢 (0)
[1034331897@qq.com]
分享 (0)