當前位置:首頁 » 編程語言 » c語言字元串查找

c語言字元串查找

發布時間: 2022-01-10 07:13:16

c語言查找字元串

字元串在存儲上類似字元數組,所以它每一位的單個元素都是可以提取的,如s=「abcdefghij」,則s[1]=「b」,s[9]="j",而字元串的零位正是它的長度,c語言查找字元串方法為:

1、首先,定義一個字元數組變數,可以這么寫。

注意事項:

盡管形式字元串可以有任意(但有限)的長度,實際語言的字元串的長度經常被限制到一個人工極大值。有兩種類型的字元串數據類型: 「定長字元串」,它有固定的極大長度並且不管是否達到了這個極大值都使用同樣數量的內存。

Ⅱ c語言 查找指定字元

Ⅲ 用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);

(3)c語言字元串查找擴展閱讀:

while語句若一直滿足條件,則會不斷的重復下去。但有時,需要停止循環,則可以用下面的三種方式:

一、在while語句中設定條件語句,條件不滿足,則循環自動停止。

如:只輸出3的倍數的循環;可以設置范圍為:0到20。

二、在循環結構中加入流程式控制制語句,可以使用戶退出循環。

1、break流程式控制制:強制中斷該運行區內的語句,跳出該運行區,繼續運行區域外的語句。

2、continue流程式控制制:也是中斷循環內的運行操作,並且從頭開始運行。

三、利用標識來控制while語句的結束時間。

Ⅳ 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("無字元@ ");

}

}

(4)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語言在文本中查找字元串

第一空填:argv[1] //文件名以字元指針的形式存在argv[1]中
第二空填:fscanf(fp,"%s\n",str); //讀取一行的字元串,存到str這個字元數組中去
第三空填:fclose(fp); //關閉文件

Ⅵ c語言從文件中查找字元串

c語言從文件中查找字元串的方法。

如下參考:

1.打開python命令窗口,定義並分配字元串變數s1。

Ⅶ 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語言中怎麼查找指定字元串

程序沒有找到字元的時候,你就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語言如何對字元串進行位置查詢

包含文件: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語言中如何查找字元串

用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
}
}

熱點內容
上傳汽車保單 發布:2024-09-20 20:30:46 瀏覽:435
櫻花伺服器測試ip 發布:2024-09-20 20:10:39 瀏覽:279
爐石傳說安卓怎麼玩 發布:2024-09-20 20:09:59 瀏覽:312
ios開會員為什麼比安卓貴 發布:2024-09-20 20:09:55 瀏覽:568
緩存伺服器redis 發布:2024-09-20 20:09:01 瀏覽:75
優酷上傳ts 發布:2024-09-20 19:55:58 瀏覽:273
minecraft怎麼開伺服器地址 發布:2024-09-20 19:52:14 瀏覽:651
android彈出布局 發布:2024-09-20 19:14:29 瀏覽:981
預演算法包括 發布:2024-09-20 18:52:07 瀏覽:764
什麼數字後面跟著密碼 發布:2024-09-20 18:52:07 瀏覽:879