这是我的问题.我输入一些输入后立即点击进入程序执行.我有些想知道问题是由于我正在使用的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)
您正在尝试读取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循环后该值不会改变.
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |