c之输入数组判断结束

从刚接触代码到现在,见过各种各样的输入要求,比如:

1.输入一行数字,以-1为结束

2.输入字符串,以回车结束

3.输入10个数字

等等

有时候就是这些基本的输入问题,阻挠了解题的脚步

其他的暂时没有想到,今天尝试了一下将一串数字输入进数组,以-1结束

【代码实例】

         int array[1000];
         int i=0;
         while(array[i-1]!=-1)
        {
                  scanf("%d",&array[i++]);
        }

值得注意的是,我一直以为while的判断条件是array 【i】!=-1,如果是这样的话,每次循环体内输入一个数字之后,i会加一,这样再次进行判断时,array【i】就不等于-1了,即使上一次输入的是-1,所以这个输入就像嚼了炫迈,根本停不下来。



输入字符串也是一样的

【代码实例】

     char a[1000];
     int i=0;
    while(a[i-1]!='\n')
    {
            scanf("%c",&a[i++]);
    }

同样的,只是换做输入字符串而已


暂时就是这些,随时准备更新。

`getchar()` 函数通常用于从标准输入流(通常是键盘)读取单个字符,它是一个字符输入函数,在C语言中常用于控制台应用程序。如果你想通过`getchar()`来输入一个数组,你需要先明确你想要输入的是一个固定长度的字符串还是动态长度的字符序列。 **1. 固定长度字符串:** 如果你需要用户输入一个固定的长度,例如一个长度为n的字符数组,可以这样做: ```c #include <stdio.h> #define ARRAY_LENGTH 5 int main() { char input[ARRAY_LENGTH]; for (int i = 0; i < ARRAY_LENGTH; i++) { if (i == ARRAY_LENGTH - 1) { // 读到最后一个元素,不需要再输入 break; } input[i] = getchar(); if (input[i] == '\n' || input[i] == EOF) { // 当遇到换行符或文件结束标志时结束输入 break; } } input[ARRAY_LENGTH - 1] = '\0'; // 结束字符串,添加空字符'\0' printf("Input: %s\n", input); return 0; } ``` 这里要注意,当输入到达指定长度或者用户按下回车键(即换行符`\n`)时,程序会结束输入,并在最后添加一个空字符`\0`表示字符串结束。 **2. 动态长度字符序列:** 如果想读取直到遇到特定字符(如换行、空格或特殊结束字符),则可以使用循环,并检查输入是否满足条件: ```c #include <stdio.h> int main() { char input[100]; // 假设最大长度为100 int ch; while ((ch = getchar()) != '\n' && ch != EOF && input[strcspn(input, "\n")] != '\0') { input[strlen(input)] = ch; } input[strlen(input)] = '\0'; // 添加终止符 printf("Input: %s\n", input); return 0; } ``` 这个例子中,我们使用`strcspn()`函数判断当前输入字符的位置,当遇到换行符或EOF(文件结束)时结束输入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值