鱼C论坛

 找回密码
 立即注册
查看: 2137|回复: 4

数组

[复制链接]
发表于 2022-11-17 17:31:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

int main()
{
    int i = 0;
    char str[21];

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

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

    str[21] = '\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 @风车呼呼呼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-17 18:28:46 | 显示全部楼层
本帖最后由 jhq999 于 2022-11-17 18:37 编辑

例子应该是Hold on your hats. Ladis and gentlemen.
  1. int main()
  2. {
  3.     int i = 0;
  4.     char str[21];

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

  9.     if (i >= 20)
  10.     {
  11.         i = 20;
  12.         while (str[i--] != ' ');
  13.     }

  14.     str[i+1] = '\0';
  15.     printf("你输入的文本是:%s\n", str);

  16.     return 0;
  17. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-18 10:23:24 | 显示全部楼层
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int i = 0;
  5.     char str[21];

  6.     printf("请输入一行文本是:");
  7.     while ((str[i++] = getchar()) != '\n') //给数组赋值
  8.         ;

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

  11.     if (i > 21)
  12.     {
  13.         i = 21;
  14.         while (str[i--] != ' ')
  15.         {
  16.             str[i--] = '\0';
  17.         }
  18.     }
  19.     --------------------------------------- */

  20.     str[i] = '\0'; // 这里 str[21] 改成 str[i] !!!

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

  22.     return 0;
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-11-18 11:29:30 | 显示全部楼层

把25行的21改成i,不就会无限读取输出吗,我要的是控制输出最多为21个字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

哦哦原来。只要把 while 迴圈多加个条件 i < 21 便可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 08:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表