程序在for循环-C之后执行
这是我的问题。在我输入一些输入并点击回车后,程序立即执行。我发现这个问题是由于我使用的for循环造成的。这是代码程序在for循环-C之后执行,c,loops,C,Loops,这是我的问题。在我输入一些输入并点击回车后,程序立即执行。我发现这个问题是由于我使用的for循环造成的。这是代码 #include<stdio.h> #include<stdlib.h> #include<string.h> main(){ char myString[100]; char myChar = myString[6]; int i; for(i=0; i<=100; i++){ scanf("%s", myStri
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main(){
char myString[100];
char myChar = myString[6];
int i;
for(i=0; i<=100; i++){
scanf("%s", myString[i]);
}
printf("%c\n", myChar);
system("pause");
}
#包括
#包括
#包括
main(){
char myString[100];
char myChar=myString[6];
int i;
对于(i=0;i您试图读取101个字符串%s
,但您为100个字符分配了空间。您将字符而不是字符指针传递到scanf
,导致崩溃
如果试图读取100个字符,则应在格式行中传递%c
,并在scanf
调用的参数部分传递一个地址:
scanf("%c", &myString[i]);
您还应该替换您正在使用的字符串格式(%s
),但传递的字符myString[i]
。这不好。一个问题可能是for循环:
for(i=0; i<=100; i++){
scanf("%s", myString[i]);
}
对于(i=0;i你应该写:
for(i = 0; i < 100; i++)
{
scanf("%c", &myString[i]);
}
顺便说一句,下面这行:
char myChar = myString[6];
它应该放在调用“scanf”之后,否则mychar将始终是“c”您所说的“键入一些输入并按enter”是什么意思?在尝试编写代码之前,你真的应该先读一本关于C的书。我的建议是,这其实并不像听起来那么难。无论如何,祝你未来的C编码好运!他甚至在尝试读取101个字符串。那么我如何从用户那里获得字符串呢?@JoachimPileborg谢谢你的更正!@Srivathsan请查看编辑。@Srivathsan你刚刚好吗scanf(“%s”,myString);
没有循环
scanf("%s", &myString);
char myChar = myString[6];