21xrx.com
2025-03-29 14:35:19 Saturday
文章检索 我的文章 写文章
C语言循环输入字符串的方法
2023-06-15 17:08:02 深夜i     6     0
C语言 字符串 循环输入 while do-while scanf() fgets()

在编写C语言程序的时候,我们时常需要循环地输入一些字符串。那么,我们该如何使用C语言来实现这个功能呢?本文将会介绍两种常见的C语言循环输入字符串的方法。

方法一:使用while循环和scanf()函数

首先,我们使用while循环来实现循环输入字符串的功能。在while循环中,我们不断地使用scanf()函数来读取输入的字符串,并将其存储到指定的数组中。具体的实现代码如下所示:

#include 
int main()
{
  int i = 0;
  char str[100];
  printf("请输入字符串,按'q'键退出输入:\n");
  while(scanf("%c", &str[i]) != EOF)
  {
    //如果输入的字符是q,就退出循环
    if(str[i] == 'q')
      break;
    //将输入的字符存储到数组中
    i++;
  }
  //在输出字符串之前,需要将数组中的最后一位'\n'去掉
  str[i-1] = '\0';
  printf("输入的字符串为:%s\n", str);
  return 0;
}

在运行程序后,我们可以看到一个提示信息,要求用户输入字符串。用户可以连续输入多个字符,使用'q'键来结束输入。当用户输入完毕后,程序会输出用户输入的字符串。

方法二:使用do-while循环和fgets()函数

另外,我们还可以使用do-while循环来实现该功能。在do-while循环中,我们使用fgets()函数来读取每行输入的字符串。与上面的方法不同的是,该方法会一次性读取一整行输入的内容,并将其存储到指定的数组中。实现代码如下:

#include 
int main()
{
  char str[100];
  int len;
  printf("请输入字符串:\n");
  
  do
  {
    fgets(str, 100, stdin); //读取输入的字符串
    if(str[0] != '\n'//如果输入的不是空行
    {
      len = strlen(str); //计算读取的字符串长度
      str[len-1] = '\0'//去掉最后的换行符
      printf("%s\n", str); //输出字符串
    }
  }while(str[0] != '\n');
  return 0;
}

该方法与上述方法相比,代码量稍微多一些,但是比较直观易懂。使用该方法可以很方便地读取多个字符串,并且每次读取的字符串长度不受限制。

  
  

评论区