gpt4 book ai didi

c - 如何将一个句子复制到一个字符数组中

转载 作者:太空宇宙 更新时间:2023-11-04 04:44:07 26 4
gpt4 key购买 nike

我正在尝试将一个句子复制到 char 数组中。我尝试在 if 中使用 scanf("%[^\n])scanf("%[^\n]\n声明,但它不起作用。有人可以帮我弄清楚吗?我正在使用 C 语言。它适用于第一个代码,但不适用于第二个代码。

文件#1

#include <stdio.h>
int main ()
{
char c[10];
printf ("Enter text.\n");
scanf("%[^\n]", c);
printf ("text:%s", c);
return 0;
}

文件#2

#include <stdio.h>
#include <string.h>

int main(void)
{
char command[10];
char c[10];

printf("cmd> ");
scanf( "%s", command);

if (strcmp(command, "new")==0)

{

printf ("Enter text:\n");
scanf("%[^\n]", c);
printf ("text:%s\n", c);

}
return 0;
}

最佳答案

%[^\n] 前加一个空格,如下所示:

#include <stdio.h>
#include <string.h>

int main(void)
{
char command[10];
char c[10];

printf("cmd> ");
scanf( "%s", command);

if (strcmp(command, "new")==0)
{
printf ("Enter text:");
scanf(" %[^\n]", c); // note the space
printf ("text:%s", c);

}
return 0;
}

现在应该可以了。该空间使其消耗先前输入的任何空白。

这是我在没有空格的情况下测试时的输出:

cmd> new
Enter text:text:@
------------------
(program exited with code: 0)

还有空格:

cmd> new
Enter text:test
text:test
------------------
(program exited with code: 0)

关于c - 如何将一个句子复制到一个字符数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22874985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com