当前位置:首页 » 编程语言 » c语言字符串查找
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言字符串查找

发布时间: 2022-01-31 18:58:16

c语言中如何查找字符串

用strstr这个函数

包含文件:string.h
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。

源代码:

#include<stdio.h>
#include<string.h>//调用string.h中的strstr函数
void main(){
char ch1[255]="abcde";
char ch2[100]="cd";
char* ch;//用于接受返回值
if((ch=strstr(ch1,ch2))==NULL){//说明没有要找的字符串
printf("-1\n");
}else{//说明找到了那个字符串
printf("%d\n",ch-ch1+1);//cde的地址减去abcde的地址+1
}
}

⑵ c语言中怎么查找指定字符串

程序没有找到字符的时候,你就break,退出循环了。把这一句去掉就可以了。

修改如下 :
#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;
}
}
}

⑶ c语言 查找指定字符

⑷ c语言查找字符串

字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“b”,s[9]="j",而字符串的零位正是它的长度,c语言查找字符串方法为:

1、首先,定义一个字符数组变量,可以这么写。

注意事项:

尽管形式字符串可以有任意(但有限)的长度,实际语言的字符串的长度经常被限制到一个人工极大值。有两种类型的字符串数据类型: “定长字符串”,它有固定的极大长度并且不管是否达到了这个极大值都使用同样数量的内存。

⑸ C语言中怎么查找字符串数组中的某个字符

程序有误,修改如下:

#include <stdio.h>

#include <string.h>

void main(){

char sh[20];

gets(sh);

for(int i=0;i<20;i++)

{

if(sh[i]='@')

{

printf("判断出有字符@ ");

break;

}

if(sh[i]='')printf("无字符@ ");

}

}

(5)c语言字符串查找扩展阅读:

数组的使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

网络-数组

⑹ C语言中在字符串中查找指定字符串

#include"stdio.h" #include"string.h" void main() { char *str1="nayitian anzd"; char *str2="anz"; int index[20]; int num = 0; int i,j; for (i = 0; i < strlen(str1) - 3; i++) for (j = 0; j < 3; j++) { if (*(str1 + i) == *(str2 + j)) //比较 { i ++; //str1移到下一位 if (j == 2) //如果比较了三次都相等则找到一个 { index[num] = i - 2; //记录str1下标 num ++; } } else { i = i - j; //有不相等的跳出,i回到比较前的值 break; } } printf("共找到:%d个\n",num); printf("下标分别是:"); for (i = 0; i < num; i++) { printf("\t%d",index[i]); } getchar(); }

⑺ 用c语言在一个字符串中查找另一个字符串,并统计个数

例如,asdfgasfgasf,as,则输出3。

#include<stdio.h>

#include<stdlib.h>

intmain()

charS[100],T[20];

charch1,ch2;

printf("请输入主字符串:\n");

ch1=getchar();

inti=0;

while(ch1!='\n')

S[i]=ch1;

i++;

ch1=getchar();

printf("请输入要筛选的字符串:\n");

ch2=getchar();

intj=0;

while(ch2!='\n')

T[j]=ch2;

j++;

ch2=getchar();

intm,n;//m为S的下标,n为T的下标

m=0;

n=0;

intnum=0;//num用于记录选定单词出现的次数

while(m<=i&&n<=j)

if(S[m]==T[n])

m++;

n++;

else

m=m-n+1;

n=0;

if(n==j)

num++;

if(m==i+1)

printf("出现的次数是%d",num);

(7)c语言字符串查找扩展阅读:

while语句若一直满足条件,则会不断的重复下去。但有时,需要停止循环,则可以用下面的三种方式:

一、在while语句中设定条件语句,条件不满足,则循环自动停止。

如:只输出3的倍数的循环;可以设置范围为:0到20。

二、在循环结构中加入流程控制语句,可以使用户退出循环。

1、break流程控制:强制中断该运行区内的语句,跳出该运行区,继续运行区域外的语句。

2、continue流程控制:也是中断循环内的运行操作,并且从头开始运行。

三、利用标识来控制while语句的结束时间。

⑻ c语言如何对字符串进行位置查询

包含文件:string.h
函数名:
strstr
函数原型:
extern
char
*strstr(char
*str1,
const
char
*str2);
语法:*
strstr(str1,str2)
str1:
被查找目标string
expression
to
search.
str2:
要查找对象The
string
expression
to
find.
返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。
例子:
char
str[]="1234xyz";
char
*str1=strstr(str,"34");
cout
<<
str1
<<
endl;
显示的是:
34xyz
函数实现
1.Copyright
1990
Software
Development
Systems,
Inc.
char
*strstr(const
char
*s1,const
char
*s2)
{
int
len2;
if(!(len2=strlen(s2)))//此种情况下s2不能指向空,否则strlen无法测出长度,这条语句错误

return(char*)s1;
for(;*s1;++s1)
{
if(*s1==*s2
&&
strncmp(s1,s2,len2)==0)
return(char*)s1;
}
return
NULL;
}
2.Copyright
1986
-
1999
IAR
Systems.
All
rights
reserved
char
*strstr(constchar*s1,constchar*s2)
{
int
n;
if(*s2)
{
while(*s1)
{
for(n=0;*(s1+n)==*(s2+n);n++)
{
if(!*(s2+n+1))
return(char*)s1;
}
s1++;
}
return
NULL;
}
else
return
(char*)s1;
}
3.
GCC-4.8.0
char
*strstr(const
char*s1,const
char*s2)
{
const
char*p=s1;
const
size_tlen=strlen(s2);
for(;(p=strchr(p,*s2))!=0;p++)
{
if(strncmp(p,s2,len)==0)
return
(char*)p;
}
return(0);
}
应用举例
//
strstr.c
#include
<syslib.h>
#include
<string.h>
main()
{
char
*s="GoldenGlobalView";
char
*l="lob";
char
*p;
clrscr();
p=strstr(s,l);
if(p)
printf("%s",p);
else
printf("NotFound!");
getchar();
return0;
}
//功能:从字串”
string1
onexxx
string2
oneyyy”中寻找”yyy”
(假设xxx和yyy都是一个未知的字串)
char
*s=”string1onexxxstring2oneyyy”;
char
*p;
p=strstr(s,”yyy”);
if(p!=NULL)
printf(“%s”,p);
else
printf("notfound\n");
说明:如果直接写语句p=strstr(s,”one”),找到的是onexxxstring2oneyyy
char
*mystrstr(char*s1,char*s2)
{
if(*s1==0)
{
if(*s2)
return
(char*)NULL;
return
(char*)s1;
}
while(*s1)
{
int
i=0;
while(1)
{
if(s2[i]==0)
return
s1;
if(s2[i]!=s1[i])
break;
i++;
}
s1++;
}
return
(char*)NULL;
}

⑼ 怎样利用c语言编写一个程序在一个字符串数组中查找一个指定的字符并输出他第一次

#include<stdio.h>
#include<string>

void main()
{
char a[20],c; //a[20]为字符串,c为要查找字符
int i,n[5],num = 0,j = 0; //i,j为计数器,n[5]纪录下标,num记录个数
printf("请输入字符串(少于20个字符)\n");
gets(a);
printf("请输入要查找字符:");
scanf("%c",&c);
for(i = 0;i <= strlen(a);i ++)
{
if(a[i] == c)
{
n[j++] = i;
num++;
}
}
if(num == 0)
printf("没有您要查找的字符\n");
else
printf("您要查找的字符第一次出现的位置是:%d。\n",n[0]+1);

}

有看不懂的地方给我信息就行

⑽ c语言在文本中查找字符串

第一空填:argv[1] //文件名以字符指针的形式存在argv[1]中
第二空填:fscanf(fp,"%s\n",str); //读取一行的字符串,存到str这个字符数组中去
第三空填:fclose(fp); //关闭文件