簡體   English   中英

在C中讀取字符串

[英]Reading strings in C

我必須在CI中讀取不同長度的字符串,可以使用指針數組並在循環內使用alloc。問題是程序的輸入是一系列句子,如下所示:

Rene Decartes曾經說過,
“我思故我在。”

還有更多。 如何檢查用戶已完成輸入句子的programmaticaly。

如果我理解這個問題,你就不是在尋找“行尾”信號; 你正在尋找“句末”信號。

執行此操作的常用方法是在用戶完成時要求用戶輸入空行。 然后(取決於您如何讀取字符串),您可以檢查空字符串或僅包含單個(換行符)字符的字符串。

也許他甚至在尋找文件結尾(輸入結束,流結束)。 您可以通過檢查各種輸入函數的返回值來檢測輸入流的結束。 您沒有告訴我們您用於閱讀輸入的功能。 例如,使用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. */

循環數組鍵,直到找到“\\ 0”字符。

您應該使用“行尾”作為分隔符一次處理一行。 您可以將它們存儲到**char - 當然是正確分配的。 要小心邊界,並且更喜歡strncpy()strcpy() - 后者是不安全的。

利用some delimiters並要求用戶在完成所有句子時輸入它,同時為了檢查each line check with '\\n' as the delimiter的結尾each line check with '\\n' as the delimiter

您可以告訴用戶鍵入一個特殊符號或字符串,表示輸入已結束。 例如,您可以告訴用戶輸入. 在新行中終止輸入。 結賬@Adam Liss的回答也是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM