c语言的,运行出现乱码
解决时间 2021-03-09 08:09
- 提问者网友:感性作祟
- 2021-03-08 15:46
#include
int main(){
char str[10][31];int num;int j;int i;
scanf("%d", &num);
for(j = 0; j < num; j++){
scanf("%s", str[j]);
}
for(j = 0; j < num; j++){
for(i = 0; i < 31;i++){
if((str[j][i] != '\0') & (str[j][i] < '0') || (str[j][i] > '9')){
printf("%c", str[j][i]);
}
if(str[j][i] == '\0'){
printf("\n");
break;
}
}
}
return 0;
}
在输出string时,有时候第一个string的第一个字母会变成乱码,求教!!谢谢啦!
最佳答案
- 五星知识达人网友:白昼之月
- 2021-03-08 16:09
if((str[j][i] != '\0') & (str[j][i] < '0') || (str[j][i] > '9'))其中的&是否应该是&&呢?
全部回答
- 1楼网友:神也偏爱
- 2021-03-08 19:55
目测是想输出没有数字的字符串
if((str[j][i] != '\0') & (str[j][i] < '0') || (str[j][i] > '9'))改为
if((str[j][i] != '\0') && ((str[j][i] < '0') || (str[j][i] > '9')))
- 2楼网友:我住北渡口
- 2021-03-08 19:15
&的优先级高于||
如果你代码的目的是输出非数字的所有字符 并换行的话
if((str[j][i] != '\0') & ((str[j][i] < '0') || (str[j][i] > '9')) )
是不是应该这样
- 3楼网友:轮獄道
- 2021-03-08 17:43
fscanf(fp,"%s %d %d %d %s %l %d"........
scanf/fscanf函数的格式转换字符没有l,如果转换字符无效,则函数的行为未定义。
我要举报
大家都在看
推荐资讯