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

时间:2012-07-20 11:18:23

标签: 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");

}

4 个答案:

答案 0 :(得分:5)

您正在尝试读取101个字符串%s,但您为100个字符分配了空格。 scanf,导致崩溃。

如果您要阅读100个字符,则应在格式行中传递%c scanf调用的参数部分中的地址

scanf("%c", &myString[i]);

您还应该将<=替换为<,或者分配myString[101]

如果您想获得一个字符串,请拨打scanf一次,而不是循环播放:

scanf("%99s", myString); // myString is the same as &myString[0]

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

答案 1 :(得分:2)

您使用的是字符串格式(%s),但是传递了字符myString[i]。那不好。

答案 2 :(得分:0)

一个问题可能是你的for循环:

for(i=0; i<=100; i++){
    scanf("%s", myString[i]);
 }

您只有100个元素,但访问101。

此致   罗杰

答案 3 :(得分:0)

你应该写:

 for(i = 0; i < 100; i++)
 {
    scanf("%c", &myString[i]);
 }

或者:

scanf("%s", &myString);

btw,下面的一行:

char myChar = myString[6];

它应该在调用'scanf'后放置,否则mychar将始终为'c'