在C中读取字符串

时间:2011-09-05 17:20:14

标签: c string

我必须在C.中读取不同长度的字符串。我可以使用指针数组并在循环内部使用alloc来实现。问题是程序的输入是一系列句子,如下所示:

  Rene Decartes曾经说过,   “我想,因此我就是。”

还可以有更多。如何检查用户已完成输入句子的programmaticaly。

6 个答案:

答案 0 :(得分:1)

如果我理解这个问题,你就不会寻找“行尾”信号;你正在寻找“句末”信号。

执行此操作的常用方法是在用户完成时要求用户输入空行。然后(取决于你如何阅读字符串),你可以检查一个空字符串,或一个只有一个(换行符)字符的字符串。

答案 1 :(得分:1)

也许他甚至在寻找文件结尾(输入结束,流结束)。您可以通过检查各种输入函数的返回值来检测输入流的结束。您没有告诉我们您用于阅读输入的功能。例如。使用fgets()并输入标准输入

#include <stdio.h>

#define BUFFERSIZE 256
char buffer[BUFFERSIZE];
...

while (fgets (buffer, sizeof buffer, stdin) != NULL) {
   /* Do something with buffer. */
}
/* No more lines on stdin. */

答案 2 :(得分:0)

循环数组键,直到找到“\ 0”字符。

答案 3 :(得分:0)

您应该使用“行尾”作为分隔符一次处理一行。您可以将它们存储到**char中 - 当然是正确分配的。请注意边界,并且更喜欢strncpy()strcpy() - 后者不安全。

答案 4 :(得分:0)

利用some delimiters并要求用户输入完所有句子, 也是为了检查each line check with '\n' as the delimiter

的结尾

答案 5 :(得分:0)

您可以告诉用户键入一个特殊符号或字符串,表示输入已结束。例如,您可以告诉用户在新行中输入.以终止输入。结账@Adam Liss的回答也是。