C语言中scanf一个词
Scanf for a word in C language
嘿,我得到了这段代码,我需要扫描用户的输入 (ANO/NE) 并将此输入存储到变量“odpoved”中。怎么做?我现在所看到的只是扫描输入的第一个字母。
char odpoved;
printf("Je vše v pořádku? (ANO/NE)");
scanf("%s", &odpoved);
if(odpoved == "ANO" || odpoved == "ano"){
printf("Super, díky mockrát");
}
else if(odpoved == "NE" || odpoved == "ne"){
printf("To mě mrzí, ale ani já nejsem dokonalý");
}
else{
printf("Promiň, ale zmátl jsi mě. Takovou odpověď neznám!!!");
return 0;
}
首先要知道的是,char是一种1个字节的数据类型,用于存储单个字符,如'a'、'b'、1、2等。 .. 有 256 个可能的字符,通常由 ASCII table ( https://www.ascii-code.com/).
表示
由于 odpoved 是一个字符串,您需要将其键入 char* 或等效的 char [] ,它是指向字符数组(字符串)中第一个 char 的指针。字符串中的最后一个字符始终是一个终止符字节“\0”,用于指示字符串的结尾。使用语音标记时会自动插入空终止符,例如“sometext”或当 %s 用于获取输入时。
您犯的另一个错误是用 == 或 != 符号比较字符串。这将不起作用,因为第一个字符将相互比较。因此,要比较字符,您需要使用包含 string.h 库时提供的 strcmp 函数。还有许多其他有用的字符串函数,例如 strlen,它可以告诉您字符串的长度等。
嘿,我得到了这段代码,我需要扫描用户的输入 (ANO/NE) 并将此输入存储到变量“odpoved”中。怎么做?我现在所看到的只是扫描输入的第一个字母。
char odpoved;
printf("Je vše v pořádku? (ANO/NE)");
scanf("%s", &odpoved);
if(odpoved == "ANO" || odpoved == "ano"){
printf("Super, díky mockrát");
}
else if(odpoved == "NE" || odpoved == "ne"){
printf("To mě mrzí, ale ani já nejsem dokonalý");
}
else{
printf("Promiň, ale zmátl jsi mě. Takovou odpověď neznám!!!");
return 0;
}
首先要知道的是,char是一种1个字节的数据类型,用于存储单个字符,如'a'、'b'、1、2等。 .. 有 256 个可能的字符,通常由 ASCII table ( https://www.ascii-code.com/).
表示由于 odpoved 是一个字符串,您需要将其键入 char* 或等效的 char [] ,它是指向字符数组(字符串)中第一个 char 的指针。字符串中的最后一个字符始终是一个终止符字节“\0”,用于指示字符串的结尾。使用语音标记时会自动插入空终止符,例如“sometext”或当 %s 用于获取输入时。
您犯的另一个错误是用 == 或 != 符号比较字符串。这将不起作用,因为第一个字符将相互比较。因此,要比较字符,您需要使用包含 string.h 库时提供的 strcmp 函数。还有许多其他有用的字符串函数,例如 strlen,它可以告诉您字符串的长度等。