1613551 发表于 2022-11-2 16:10:30

关于数组的问题

本帖最后由 1613551 于 2022-11-2 16:13 编辑

我想实现的是当输入的字符串不超过20个,而且有空格的话而字符串只会输出到最后一个空格,具体可以见图二

而为什么直接用数据下标判断是否等于' '的话好像根本不会执行?
如第二个程序的第13行,好像直接就跳过这步了...   具体可以见图一



“”题目要求图如2所示,

#include <stdio.h>
#include <stdlib.h>
#define MAX 1024
int main(void)
{
    char a, ch;
    int i = 0, num = 0;
    printf("请输入一行文本:");
    while (((ch = getchar()) != '\n') && i < 20)
    {
      a = ch;
      i++;
      if (ch == ' ')
      {
            num = i;
      }
    }
    if (num)
    {
      i = num;
    }

    printf("您输入的文本:");
    for (int ii = 0; ii < i; ii++)
    {
      printf("%c", a);
    }
    putchar('\n');

    system("pause");
    return 0;
}

#include <stdio.h>
#include <stdlib.h>
#define MAX 1024
int main(void)
{
      char a, ch;
      int i = 0, num = 0;
      printf("请输入一行文本:");
      while (((a = getchar()) != '\n') && i < 20)
      {

                i++;
                if (a == ' ')
                {
                        num = i;
                }
      }
      if (num)
      {
                i = num;
      }

      printf("您输入的文本:");
      for (int ii = 0; ii < i; ii++)
      {
                printf("%c", a);
      }
      putchar('\n');

      system("pause");
      return 0;
}

3120781247 发表于 2022-11-2 16:10:31

第12行 i++ 放错地方了,放在 if (a == ' ') 的后面就能实现了。

jhq999 发表于 2022-11-2 18:11:06

本帖最后由 jhq999 于 2022-11-2 18:12 编辑

如果出现前21个字符没有空格,而21个字符后面有空格怎么处理?
#include<stdio.h>
int main()
{
    char s={0},lastspace=0;
    scanf("%[^\n]",s);
    s='\0';
    int i=0;
    for(i=0;s;i+=1)if(0x20==s)lastspace=i;
    if(i==20&&lastspace)s='\0';

    printf("%s",s);
    return 0;

}

1613551 发表于 2022-11-2 22:01:58

3120781247 发表于 2022-11-2 20:54
第12行 i++ 放错地方了,放在 if (a == ' ') 的后面就能实现了。

愣住...突然觉得我是智障..

1613551 发表于 2022-11-2 22:04:45

jhq999 发表于 2022-11-2 18:11
如果出现前21个字符没有空格,而21个字符后面有空格怎么处理?

不是很理解你的问题,如果超过20个字符,后面的就不会取了

1613551 发表于 2022-11-2 22:05:41

就这样,后面后面多少个空格都一样吧

3120781247 发表于 2022-11-2 22:11:00

1613551 发表于 2022-11-2 22:01
愣住...突然觉得我是智障..

我一开始也是这样,多思考就行!
页: [1]
查看完整版本: 关于数组的问题