C语言中怎么查找字符串数组中的某个字符?
我编了个程序,想查找一个字符串数组中是否含有某个字符。程序如下#include<stdio.h>#include<string.h>voidmain(){charsh[2...
我编了个程序,想查找一个字符串数组中是否含有某个字符。程序如下#include <stdio.h>
#include <string.h>
void main()
{
char sh[20];
gets(sh);
for(int i=0;i<20;i++)
{
if(sh[i]!='@')
{
printf("没有字符 @\n");
break;
}
else
{
printf("有字符 @\n");
break;
}
}}但只有@单个字符输入的时候才说有,swed@sd or @sasdd or dsds@ 都查找不出来,请问是什么原因? 展开
#include <string.h>
void main()
{
char sh[20];
gets(sh);
for(int i=0;i<20;i++)
{
if(sh[i]!='@')
{
printf("没有字符 @\n");
break;
}
else
{
printf("有字符 @\n");
break;
}
}}但只有@单个字符输入的时候才说有,swed@sd or @sasdd or dsds@ 都查找不出来,请问是什么原因? 展开
2个回答
2013-11-19
展开全部
错误在于你判断了第一个非@字符时就已经输出没有字符@退出循环了所以不会检测@了。改成下面就行了:#include <stdio.h>
#include <string.h>
int main()
{
char sh[100],n=0;
gets(sh);
for(int i=0;sh[i];i++)
if(sh[i]=='@')
n++;
if(n==0)
printf("没有字符 @\n");
else
printf("有字符 @\n");
}
#include <string.h>
int main()
{
char sh[100],n=0;
gets(sh);
for(int i=0;sh[i];i++)
if(sh[i]=='@')
n++;
if(n==0)
printf("没有字符 @\n");
else
printf("有字符 @\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-19
展开全部
#include <stdio.h>
#include <string.h>
void main()
{
char sh[20];
int i;
gets(sh);
for( i=0;i<20;i++)
if(sh[i]!='@')
printf("没有字符 @\n");
else
printf("有字符 @\n");
}
//你用break,第一只就break循环了
#include <string.h>
void main()
{
char sh[20];
int i;
gets(sh);
for( i=0;i<20;i++)
if(sh[i]!='@')
printf("没有字符 @\n");
else
printf("有字符 @\n");
}
//你用break,第一只就break循环了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询