本文目錄一覽:
- 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;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/259560.html