当前位置:首页 » 编程语言 » c语言查找字符串

c语言查找字符串

发布时间: 2023-06-03 14:12:40

‘壹’ c语言从文件中查找字符串

c语言从文件中查找字符串的方法。

如下参考:

1.打开python命令窗口,定义并分配字符串变量s1。

‘贰’ 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语言中怎么查找字符串数组中的某个字符

程序有误,修改如下:

#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("无字符@ ");

}

}

(3)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语言查找字符串

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

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

注意事项:

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

‘伍’ c语言查找并输出重复字符串

//#define_CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidstringsort(char(*p)[1000],intm)//排列字符串,长的字符串在前面,短的在后面。
{
inti,j;
charc[1024];
for(i=0;i<m-1;i++)
{
for(j=0;j<m-1-i;j++)
if(strlen(p[j])<strlen(p[j+1]))
{
strcpy(c,p[j]);
strcpy(p[j],p[j+1]);
strcpy(p[j+1],c);
}
}
}
intsubstr(char*str,char*p)//判断p是否是str的字串,是的话返回1,不是返回0
{
inti,j;
for(i=0;str[i];i++)
{
for(j=0;str[i]==p[j]&&p[j];i++,j++);
if(p[j]==0)
{
return1;
}
if(j!=0)
{
i--;
}
}
return0;
}
intmain(void)
{
charstr[1000]="abc1243128129a343abc";
charss[1024]={0};//放子串的临时数组
charss1[1000][1000];//所有长度大于1的子串放入这里
intm=0;//子串的个数
inta[1024]={0};//统计子串的个数的数组
inti,j;
for(i=0;str[i];i++)
{
memset(ss,0,1024);
intk=0;
ss[k++]=str[i];
for(j=i+1;str[j];j++)
{
ss[k++]=str[j];
strcpy(ss1[m++],ss);
}

}
//上面这段程序是找出字符串长度大于1的所有子串

stringsort(ss1,m);//把这些字串按长度放入ss1中,长的在前面,短的在后面

for(i=0;i<m;i++)
{

char*p=str;
while((p=strstr(p,ss1[i]))!=NULL)
{
a[i]++;
p=p+strlen(ss1[i]);
}
}//这段程序是找到每一个子串出现的次数,并放入a数组中

for(i=0;i<m;i++)
{
intflag=0;//标记符
for(j=0;j<i;j++)
{
if(substr(ss1[j],ss1[i])&&a[j]==a[i])//比如abc出现了三次,而bc出现三次,那么只输出abc的次数
{
flag=1;
}

}
if(a[i]>1&&flag==0)
printf("%s:%d ",ss1[i],a[i]);
}

//system("pause");

return0;
}
//写了一晚上,真是不容易啊

热点内容
c语言编译过程指令 发布:2025-05-09 18:06:10 浏览:951
sql数据库激活 发布:2025-05-09 17:57:49 浏览:912
dell服务器如何装系统 发布:2025-05-09 17:55:48 浏览:830
ifcontinuec语言 发布:2025-05-09 17:55:42 浏览:239
form表单上传图片 发布:2025-05-09 17:55:41 浏览:310
安卓手机在哪里充电很快 发布:2025-05-09 17:49:01 浏览:440
苹果电脑邮箱服务器怎么写 发布:2025-05-09 17:46:02 浏览:531
选课算法 发布:2025-05-09 17:44:38 浏览:257
gs3选哪个配置好 发布:2025-05-09 17:43:07 浏览:388
sql2008ssms 发布:2025-05-09 17:42:21 浏览:447