我想在用户输入的内容中添加引号,但是不知道如何操作。
printf("Please enter a name: ");
char string[50];
scanf ("%[^\n]%*c", string);
接下来,我希望能够添加引号。因此,如果用户输入的是Bob,则存储为"Bob"。谢谢。
我想在用户输入的内容中添加引号,但是不知道如何操作。
printf("Please enter a name: ");
char string[50];
scanf ("%[^\n]%*c", string);
接下来,我希望能够添加引号。因此,如果用户输入的是Bob,则存储为"Bob"。谢谢。
string[0] = '"';
scanf ("%[^\n]%*c", string + 1);
size_t len = strlen(string);
string[len] = '"';
string[len + 1] = '\0';
将'"'
存储在string[0]
位置后,在string + 1
上调用scanf()
。然后获取该字符串的长度,并在其末尾添加另一个'"'
。
你可以做到这一点
if(fgets(string,50,stdin)!=NULL){
char anotherstring[50];
string[strcspn(string,"\n")]=0;
int len = (int) strlen(string);
if(sprintf(anotherstring,"\"%s\"", string) == len+2){
// anotherstring contains quoted string
}
}
scanf
——但你需要检查scanf
的返回值来确定它是否成功。更好的方法是使用fgets
——它比scanf
更容易使用。scanf
,你应该指定可以读取的字符数。if(scanf("%49s",string) == 1){
...
}
scanf
的返回值,以确保已输入某些内容。 - Chris Turnerscanf()
的返回值是好的建议,但正如您所看到的,OP没有提供完整的工作代码,因此我只是提供了解决问题的方法。 - machine_1