Weabu 发表于 2022-11-17 17:31:42

数组

自己的code:
#include <stdio.h>

int main()
{
    int i = 0;
    char str;

    printf("请输入一行文本是:");
    while ((str = getchar()) != '\n') //给数组赋值
      ;
    printf("%d\n", i);

    if (i > 21)
    {
      i = 21;
      while (str != ' ')
      {
            str = '\0';
      }
    }

    str = '\0';
    printf("你输入的文本是:%s\n", str);

    return 0;
}
/*
Hold on your hats.Ladis and gentlemen.
*/



问1:为什么验证Hold on your hats.Ladis and gentlemen.时,输出为Hold on ,不应该是Hold on your吗@Twilight6 @风车呼呼呼

jhq999 发表于 2022-11-17 18:28:46

本帖最后由 jhq999 于 2022-11-17 18:37 编辑

例子应该是Hold on your hats. Ladis and gentlemen.
int main()
{
    int i = 0;
    char str;

    printf("请输入一行文本是:");
    while (i<21&&(str = getchar()) != '\n')i+=1 //给数组赋值
      ;
    printf("%d\n", i);

    if (i >= 20)
    {
      i = 20;
      while (str != ' ');
    }

    str = '\0';
    printf("你输入的文本是:%s\n", str);

    return 0;
}

傻眼貓咪 发表于 2022-11-18 10:23:24

#include <stdio.h>

int main()
{
    int i = 0;
    char str;

    printf("请输入一行文本是:");
    while ((str = getchar()) != '\n') //给数组赋值
      ;

    /* ------------- 没有用的代码 -------------
    printf("%d\n", i);

    if (i > 21)
    {
      i = 21;
      while (str != ' ')
      {
            str = '\0';
      }
    }
    --------------------------------------- */

    str = '\0'; // 这里 str 改成 str !!!

    printf("你输入的文本是:%s\n", str);

    return 0;

Weabu 发表于 2022-11-18 11:29:30

傻眼貓咪 发表于 2022-11-18 10:23


把25行的21改成i,不就会无限读取输出吗,我要的是控制输出最多为21个字符

傻眼貓咪 发表于 2022-11-18 11:49:39

Weabu 发表于 2022-11-18 11:29
把25行的21改成i,不就会无限读取输出吗,我要的是控制输出最多为21个字符

哦哦原来。只要把 while 迴圈多加个条件 i < 21 便可。
页: [1]
查看完整版本: 数组