C 数组循环错误

标签 c arrays string gets

我应该编写一个简单的C程序来读取一个整数并循环n次来处理该字符串,但是如果我使用scanf整数,第一个循环会自动传递一个空字符串,但如果我使用一个常量编号循环正常工作。请有人向我解释一下发生了什么事。

#include <stdio.h>
#define MAX 80

int main(){
    char sentence[MAX];
    int n, i;
    scanf("%d", &n);
    for(i=0; i<3; i++){//it loops with empty string automatically if I replace 3 with n
        gets(sentence);
        printf("%s\n", sentence);
    }
}

最佳答案

试试这个代码

    #include<stdio.h>
    #include<conio.h>
    #define MAX 80
    void main()
    {
    char sentence[MAX];
    int n,i;
    clrscr();
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf(" %99[^\n]",sentence);
    printf("\n%s\n",sentence);
    getch();

    }

关于C 数组循环错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28869055/

相关文章:

c - 如何自动去除尾随零?

c - 如何在Windows中用C获取文件夹大小?

c - 一个 code::blocks 项目中的多个小程序

c++ - 如何在不知道大小的情况下读取文本文件并存储到数组中?

c# - 分割字符串“a_b_c_d.1.2.3.4”的更好方法

c - 逐行读取文件并将逗号分隔的每个字符扫描到C中的单独变量中

java - 如何在jsp中将数组打印到输入字段?

php - 如何计算 n 个数组元素的平均值(如果存在)?

python - 如何在python字符串中引用 "\"登录

swift - 在 Swift 3 中查找两个字符串的字级最长(或全部)交集