我必须在C.中读取不同长度的字符串。我可以使用指针数组并在循环内部使用alloc来实现。问题是程序的输入是一系列句子,如下所示:
Rene Decartes曾经说过, “我想,因此我就是。”
还可以有更多。如何检查用户已完成输入句子的programmaticaly。
答案 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的回答也是。