當前位置:首頁 » 編程語言 » c語言判斷子串

c語言判斷子串

發布時間: 2022-04-13 20:02:27

『壹』 c語言程序,判斷一個字元串是否是另一個字元串的子串,如是則輸出第一次出現的位置

#include<stdio.h>
#include<string.h>
intiszstr(char*str,char*zstr);//zstr是str的子串返回出現的位置下標,否則返回-1
intmain()
{
intrenum;
charstr[100],zstr[100];
while(1)
{
str[0]=zstr[0]=0;
printf("輸入母串:");
scanf("%s",str);
printf("輸入可能的子串:");
scanf("%s",zstr);
renum=iszstr(str,zstr);
if(renum<0)
printf("不是子串! ");
else
printf("是子串,起始位置在下標%d處! ",renum);
}

return0;
}
intiszstr(char*str,char*zstr)
{
char*p1=str,*p2=NULL,*pSave=NULL,flag;
while(*p1)
{
if(*p1==zstr[0]&&strlen(p1)>=strlen(zstr))//先找到對應的首字元位置
{
pSave=p1;
p2=&zstr[0];
flag=1;
while(*p2)
{
if(*p1!=*p2)
{
flag=0;
break;
}
p1++;
p2++;
}
if(flag==1)
{
returnpSave-&str[0];
}
else
p1=pSave;
}
p1++;
}
return-1;
}

『貳』 C語言中如何判斷給定的兩個字元串是否互為子串

int strstr(char *s1,char *s2)
{
int i,flag=0;
if(strlen(s1)>=strlen(s2))
{
for(i=0;i<strlen(s2);i++)
if(s1[i]!=s2[i])
flag=1;
if(flag==1) return 0;
else
return 1;
}
return 0;
}

strstr(s1,s2)等於1的時候說明s2是s1的字串.

『叄』 C語言指針判斷是否為子串問題

#include<stdio.h>
intfunc(char*s1,char*s2)
{
char*p=s2;
for(;*s1;s1++)
{
for(;*p;p++)
{
if(*p==*s1)
{
break;
}
}
if(*p=='')
{
return0;
}
p++;
}
return1;
}
intmain(void)
{
chars1[100],s2[100];
while(scanf("%s%s",s1,s2)==2)
{
if(func(s1,s2))
{
puts("Yes");
}
else
{
puts("No");
}
}
return0;
}

『肆』 c語言判斷怎麼判斷字元串

參考代碼如下:

#include<stdio.h>
intmain()
{
charstr[300]="2y1";
charc;
inti=0,flag=0;

c=str[0];
if(c=='Y'||c=='N'||c=='2'){
//M1先說話
flag=1;
for(;;){
switch(c){
case'Y':
case'N':
c=str[i+1];
if(c!='Y'&&c!='N'&&c!='2')
flag=0;
break;
case'2':
c=str[i+1];
if(c!='y'&&c!='n'&&c!='1'&&c!=0)
flag=0;
break;
case'y':
case'n':
c=str[i+1];
if(c!='y'&&c!='n'&&c!='1')
flag=0;
break;
case'1':
c=str[i+1];
if(c!='Y'&&c!='N'&&c!='2'&&c!=0)
flag=0;
break;
case0:break;
default:flag=0;
}
if(flag==0||str[i]==0)
break;
else{
++i;
c=str[i];
}
}
}
if(flag==1)
printf("%s是對話",str);
else
printf("%s不是對話",str);
return0;
}

『伍』 C語言. 編寫函數,判斷在給定字元串中是否包含指定的子串

#include<stdio.h>
#include<string.h>
intmain(){
charstr[100],s[100],i,j,flag=0;
printf("請輸入主串: ");
gets(str);
printf("請輸入字串: ");
gets(s);
i=0,j=0;
while(i<strlen(str)&&j<strlen(s)){
if(str[i]==s[j]){//如果字元相同則兩個字元都增加
i++;
j++;
}
else{
i=i-j+1;//主串字元回到比較最開始比較的後一個字元
j=0;//字串字元重新開始
}
if(j==strlen(s)){//如果匹配成功
flag=1;//字串出現
break;
}
}
if(flag==1)printf("%s中包含%s ",str,s);
elseprintf("%s中不包含%s ",str,s);
return0;
}

『陸』 C語言定義一個函數,判斷字元串中是否包含另一個子串!!!!!!急

調用strstr()函數就可以實現

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

intmain()
{
chars[]="12345678";
chars1[]="135";
chars2[]="567";

if(strstr(s,s1))
{
printf("ok ");
}
else
{
printf("no ");
}
//--以上顯示no
if(strstr(s,s2))
{
printf("ok ");
}
else
{
printf("no ");
}
//--以上顯示ok
return0;
}

『柒』 C語言中判斷一個字元串是否為另一字元串的子串

你的if語句後面再加個if語句判斷f是否等於1,等於1就不用循環了。你沒判斷,後面的字元又把你的1改回0了。修改後代碼如下

#include<stdio.h>
#include<string.h>
main(){
chara[100],b[100];
inti,j,f=0;
gets(a);//cde
gets(b);//aabbcdefghbcd
for(i=0;i<strlen(b);i++){
if(b[i]==a[0]){
for(j=1;j<strlen(a);j++){
if(a[j]==b[i+j]){
f=1;
continue;
}else{
f=0;
break;
}
}
}
if(f==1){
break;
}
}
if(f==1)
printf("YES");
else
printf("NO");
}

使用庫函數strstr

#include<stdio.h>
#include<string.h>
main(){
chara[100],b[100];
gets(a);
gets(b);
if(strstr(b,a)!=NULL){//第2個參數第1個參數的子串
printf("YES");
}else{
printf("NO");
}
}

『捌』 c語言 定義一個函數,判斷某字元串中是否包含一個子串

intfind(char*source,char*target)//source為源字元串,target為子字元串,如找到則返回在源串中的位置,如未找到則返回-1,如果要改為找到返回1,把returni改為return1;
{
inti,j;
ints_len=strlen(source);
intt_len=strlen(target);
if(t_len>s_len)
{
return-1;
}
for(i=0;i<=s_len-t_len;i++)
{
j=0;
intflag=1;
if(source[i]==target[j])
{
intk,p=i;
for(k=0;k<t_len;k++)
{
if(source[p]==target[j])
{
p++;
j++;
continue;
}
else
{
flag=0;
break;
}
}
}
else
{
continue;
}
if(flag==1)
{
returni;
}
}
return-1;
}

『玖』 C語言定義一個函數,判斷字元串中是否包含另一個子串

intfind(char*source/*源串*/,char*target/*目標串*/)//找到返回位置,未找到返回-1
{
inti,j;
ints_len=strlen(source);
intt_len=strlen(target);
if(t_len>s_len)
{
return-1;
}
for(i=0;i<=s_len-t_len;i++)
{
j=0;
intflag=1;
if(source[i]==target[j])
{
intk,p=i;
for(k=0;k<t_len;k++)
{
if(source[p]==target[j])
{
p++;
j++;
continue;
}
else
{
flag=0;
break;
}
}
}
else
{
continue;
}
if(flag==1)
{
returni;
}
}
return-1;
}

『拾』 c語言中如何判斷兩個字元串相等

可以使用庫函數strcmp判斷,具體如下:

strcmp是C語言比較字元串的庫函數,形式為int strcmp(char *a, char *b);

該函數會對a和b的每個字元,按照ascii碼值比較,如果二者完全相同返回0;如果a的ascii碼值先出現較大者,會返回1;否則返回-1。

所以,要判斷字元串相等,可以使用。

(10)c語言判斷子串擴展閱讀:

關於上述strcmp()函數比較字元串的例子

#include <stdio.h>

#include <string.h>

int main(void)

{

char str_1[] = "abc";

char str_2[] = "abc";

char str_3[] = "ABC";

if (strcmp(str_1, str_2) == 0)

printf("str_1 is equal to str_2. ");

else

printf("str_1 is not equal to str_2. ");

if (strcmp(str_1, str_3) == 0)

printf("str_1 is equal to str_3. ");

else

printf("str_1 is not equal to str_3. ");

return 0;

}

參考資料來源:字元串-網路

熱點內容
雲伺服器ecs服務條款 發布:2025-01-20 19:19:36 瀏覽:46
安卓系統顯示屏怎麼設置屏保 發布:2025-01-20 19:18:53 瀏覽:895
有鎖機和配置鎖哪個好 發布:2025-01-20 19:18:05 瀏覽:766
安卓版軟體如何設置 發布:2025-01-20 18:58:53 瀏覽:57
java中級項目案例 發布:2025-01-20 18:58:52 瀏覽:912
sql日誌查看工具 發布:2025-01-20 18:57:12 瀏覽:242
資料庫刪除表格 發布:2025-01-20 18:51:22 瀏覽:439
c語言head 發布:2025-01-20 18:41:36 瀏覽:736
xboxone絕地求生怎麼設置伺服器 發布:2025-01-20 18:22:12 瀏覽:176
編譯字母表 發布:2025-01-20 18:20:38 瀏覽:243