本文目录一览:
- 1、C语言中怎么查找字符串数组中的某个字符?
- 2、C语言如何从字符串数组中找到一个特定的字符串并用一个新的字符串进行替换,要有例程。
- 3、C语言中如何查找字符串?
- 4、c语言二维字符串数组搜索?
- 5、用c语言编制函数,在字符串数组中查找与另一字符串相等的字符串,函数返回值为该字符串的地址或NULL?
C语言中怎么查找字符串数组中的某个字符?
错误在于你判断了第一个非@字符时就已经输出没有字符@退出循环了所以不会检测@了。改成下面就行了:#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");
}
C语言如何从字符串数组中找到一个特定的字符串并用一个新的字符串进行替换,要有例程。
#include stdio.h
#include string.h
/*要用100个1字符来替换11.1,那么xeb[]不一定还能装得下;何况还有d[100000],那里面可不一定是44.4哦.
被替换的的字符串是以&来结尾吗?a1=,a2=这些字符串唯一吗?或者默认11.1与33.3串长度是相同的吗?
看起来是的,但代码必须知道.所以这些问题只能自己解决,因为别人很难清楚你的本意*/
int main()
{
char c[]="33.3",d[]="44.4";
char xeb[]="b221.html?a1=11.1a2=22.2a3=0";
printf("初始:%s\n",xeb);
char *pa="a1",*index=strstr(xeb,pa);
if(index)
{
index+=3;
for(int n=0;nstrlen(c);n++) *(index+n)=c[n];
}
pa="a2",index=strstr(xeb,pa);
if(index)
{
index+=3;
for(int n=0;nstrlen(d);n++) *(index+n)=d[n];
}
/*检查结果*/
printf("结果:%s\n",xeb);
return 0;
}
C语言中如何查找字符串?
用strstr这个函数
包含文件:string.h
函数名: strstr
函数原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。
返回值:返回该位置的指针,如找不到,返回空指针。
源代码:
#includestdio.h
#includestring.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语言二维字符串数组搜索?
每个字符串都是以\0作为结束符的,所以如果你默认输入的字符串的长度是3,那数组得声明为4。
其它的逻辑问题和指针的括号问题就不说了,自己研究一下。修改代码如下(默认输入的五个字符串长度为3)。
#include stdio.h
int main()
{
int a;
char str[5][4];
char string[4];
int i,j;
printf("请输入字符串数组\n");
for(a=0; a5; a++)
gets(str[a]);
printf("请输入查询字符串\n");
gets(string);
for(i=0; i5; i++)
{
j=0;
while(j3)
{
if(*(*(str+i)+j)==*(string+j))
j++;
else
break;
}
if(j==3)
break;
}
if(i!=5)
printf("搜索结果为%s\n",*(str+i));
else
printf("无结果\n");
return 0;
}
用c语言编制函数,在字符串数组中查找与另一字符串相等的字符串,函数返回值为该字符串的地址或NULL?
下面是c语言实现字符串查询的函数,查到返回字符串的首址,查询不到返回NULL指针。
#include stdio.h
char *my_strstr(char *src, char *str)
{
if(!src||!str) return NULL;
while(*src)
{
char *p1 = src;
char *p2=str;
while(*p1 *p2*p1 == *p2) p1++,p2++;//注意循环体中间是逗号,是一条语句
if (!*p2) return src;//循环后,p2指针指向的位置为字符串结尾标志,则查询到字符串,返回查询到的字符串首址
src++;
}
return NULL;
}
int main()
{
char aaa[]="hello world";
printf("%s\n", my_strstr(aaa, "world"));
return 0;
}