21xrx.com
2024-12-23 00:05:37 Monday
登录
文章检索 我的文章 写文章
C语言中如何输入多行字符串
2023-06-16 21:37:57 深夜i     --     --
C语言 多行字符串 转义字符 指针数组

在C语言中输入多行字符串是一项常见任务,但是对于初学者来说可能不是很容易。事实上,C语言提供了几种方式来实现多行字符串的输入。在本文中,我们将介绍其中两种方法,分别是使用转义字符和使用指针数组。

方法一:使用转义字符

在C语言中,我们可以使用转义字符“\n”来表示换行,因此我们可以在字符串中使用这个字符来输入多行字符串。具体实现方法如下:


#include

int main()

{

  char str[1000];

  printf("请输入多行字符串,以\"end\"结束:\n");

  int i = 0;

  while (1)

  {

    scanf("%[^\n]", &str[i]);//输入一行字符串

    getchar();//吃掉换行符

    i += sprintf(&str[i], "\n");//在字符串末尾添加换行符

    if (strcmp(&str[i-3], "end") == 0)//判断是否输入结束

    {

      str[i-3] = '\0';//将多余的"end"截断

      break;

    }

  }

  printf("您输入的多行字符串为:\n%s", str);

  return 0;

}

在上述代码中,我们定义了一个字符数组“str”,用于存储多行字符串。然后使用循环来输入字符串,每次输入一行字符串并在末尾插入一个换行符,直到输入字符串以“end”结束。最后输出所有输入的字符串。

方法二:使用指针数组

另一种实现方式是使用指针数组。这种方法更加直观,代码也更加简洁。具体实现如下:


#include

#include

int main()

{

  char *str[1000];

  char line[1000];

  printf("请输入多行字符串,以\"end\"结束:\n");

  int i = 0;

  while (1)

  {

    fgets(line, 1000, stdin);//输入一行字符串

    line[strcspn(line, "\n")] = '\0';//去掉换行符

    if (strcmp(line, "end") == 0)//判断是否输入结束

      break;

    str[i] = (char*)malloc(strlen(line)+1);//分配内存并存储字符串

    strcpy(str[i], line);

    i++;

  }

  printf("您输入的多行字符串为:\n");

  for (int j = 0; j < i; j++)

  {

    printf("%s\n", str[j]);//输出所有输入的字符串

    free(str[j]); //释放内存

  }

  return 0;

}

在上述代码中,我们定义了一个指针数组“str”,用于存储多行字符串。使用循环输入所有字符串,并将其存储到相应的指针数组元素中。最后输出所有输入的字符串,然后释放内存。

本文介绍了几种C语言中输入多行字符串的方法,分别是使用转义字符和指针数组。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复