#include<stdio.h> #include<string.h> #define N 100 int main(void) { char str[N]; printf("请输入句子:"); str[N] = gets(); // strcpy(str, gets()); printf("%s\n",str); return 0; }为什么输出不正确
时间: 2024-03-17 15:43:25 浏览: 61
字符串函数string.h应用举例.-综合文档
这个程序存在语法错误和逻辑错误。
首先,`str[N]`是数组`str`的第`N+1`个元素,而数组的下标是从0开始的,因此应该使用`str`或`str[0]`。
其次,`gets`函数的返回值是一个字符串指针,不能直接赋值给字符数组。应该使用`strcpy`函数将其复制到`str`数组中。
最终,由于`gets`函数存在安全问题,建议使用`fgets`函数代替。
下面是修改后的代码:
```
#include <stdio.h>
#include <string.h>
#define N 100
int main(void) {
char str[N];
printf("请输入句子:");
fgets(str, N, stdin); // 从标准输入读取一行字符串
strtok(str, "\n"); // 去掉换行符
printf("%s\n", str);
return 0;
}
```
上述程序使用`fgets`函数从标准输入读取一行字符串,去掉换行符后输出字符串。
阅读全文