程序在for循环 - C之后执行

Sri*_*san -2 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", myString[i]);
 }

 printf("%c\n", myChar); 
 system("pause");

}
Run Code Online (Sandbox Code Playgroud)

das*_*ght 5

您正在尝试读取101个字符串%s,但是您为100个字符分配了空间.您传递一个字符而不是字符指针scanf,导致崩溃.

如果您尝试读取100个字符,则应传入%c格式行,scanf调用的参数部分中传递一个地址:

scanf("%c", &myString[i]);
Run Code Online (Sandbox Code Playgroud)

你也应该要么更换<=<,或分配myString[101].

如果您想获得一个字符串,请调用scanf一次,而不是循环:

scanf("%99s", myString); // myString is the same as &myString[0]
Run Code Online (Sandbox Code Playgroud)

在将任何数据放入字符数组之前,您还要读取第6个字符.for循环后该值不会改变.