C语言字符串数组的问题

#include <stdio.h>
int main()
{
int i=0,j;
char a[100];
char b[6]={'a','e','i','o','u'};
scanf("%s",a);
for(i=0; a[i] != '\0'; i++)
for( j=0; j<6; j++)
{
if(a[i]=b[j])
printf("%s",a[i]);
}
return 0;
}
现在就是数组a中自己的输入的东西,如有包含有“aeiou”,那么就输出来。可是程序错误,为什么呀?

每行结尾的 \ 仅仅是为了连接字符串使用的,
如果一个字符串过长,写在一行比较不合适,
就在该行结尾处加上一个反斜杠 \ 就可以在下边的行继续写这个字符串,

"123456789abcdefg"

"123456789\
abcdefg"
这两种写法是同样的。
而根据TEXT函数的特性
TEXT ("Text Files (*.TXT)\0*.txt\0") \
TEXT ("ASCII Files (*.ASC)\0*.asc\0") \
TEXT ("All Files (*.*)\0*.*\0\0")
又等同于
TEXT ("Text Files (*.TXT)\0*.txt\0ASCII Files (*.ASC)\0*.asc\0All Files (*.*)\0*.*\0\0")
所以你上边写的就等同于
static TCHAR szFilter[]=TEXT ("Text Files (*.TXT)\0*.txt\0ASCII Files (*.ASC)\0*.asc\0All Files (*.*)\0*.*\0\0") ;
确实是一个字符数组,对于字符串数组的说法,我也不敢苟同。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-07
#include <stdio.h>
int main()
{
int i=0,j;
char a[100];
char b[6]={'a','e','i','o','u'};
scanf("%s",a);
for(i=0; a[i] != '\0'; i++)
for( j=0; j<5; j++) //修改:1:下标从0~4,共5个
{
if(a[i]==b[j]) //修改2:=是赋值符号,==才是比较符号
printf("%c",a[i]); //修改3:a[i]对应数组元素,单个元素的类型为char,所以需要用%c
}
return 0;
}本回答被提问者采纳
第2个回答  2016-06-07
if(a[i]==b[j]) 是判定不是赋值
相似回答