【发布时间】:2022-01-04 13:10:49
【问题描述】:
我想存储一个最多 n 个字符的字符串,包括制表符、空格和换行符,但我不明白如何仅在字符串末尾获取此 '\0' 字符。
void takeString(char *c,int n)
{
int i=0;
char *result = fgets(c,n,stdin);
if(result)
{
while(c[i] != '\0')
i++;
if(c[i]=='\0')
c[i] = ' ';
}
c[n] = '\0';
}
【问题讨论】:
-
fgets已经存储了一个字符串,直到换行符为止,包括任何制表符和空格以及尾随的换行符。您无需执行任何操作。 -
@KamilCuk 但是,当我说想要存储像这样的字符串“e[enter]d”,其中包含新行
fgets()不会让我这样做,因为它会停止工作. -
@varkus 和
"e[enter]d",用户应该如何表示输入结束?d表示输入完成后会发生什么? -
@chux-ReinstateMonica 我想让它像下一行没有任何字符并且用户输入新行然后函数将停止。
-
"然后函数将停止。" 不清楚。该函数已经停止并返回所有输入。这里没有无限循环。
标签: arrays c string function storage