c語言中判斷一個字符串是否包含另一個字符串

1. 使用庫函數

string.h?
strstr函數?
函數名: strstr?
功 能: 在串中查找指定字符串的第一次出現?
用 法: char *strstr(char *str1, char *str2);?
說明:返回指向第一次出現str2位置的指針,如果沒找到則返回NULL。?

調用函數,判斷返回值是否等于NULL,決定是否輸出?
如;?
char *p=".c"; //需要的子串
if(strstr(A,p)) printf("%s",A);

2. 不使用庫函數

第一行是要查找的字符串?
第二行是被查找句子

輸出要查找的字符串在被查找句子的首個位置


#include<stdio.h>
#include<string.h>
void main()
{
int i,j,la,lb,num=0;
char c,a[120],b[4500];
while((c=getchar())!='\n') a[num++]=c;a[num]='\0';
num=0;
while((c=getchar())!='\n') b[num++]=c;b[num]='\0';
la=strlen(a);lb=strlen(b);
for(i=0;(lb-i)>=la;i++)
{if(b[i]==a[0])
{for(j=0;j<la;j++)
if(b[i+j]!=a[j]) break;
if(j==la) {printf("%d\n",i+1);break;}
}
}
}

3. 使用指針

#include "stdio.h"
#include "conio.h"
#include "string.h"
int main()
{
char str[20]="jsdlaadf",substr[10]="sdf";
char *p=str,*q=substr;
int flag=0;
for(;*(p+strlen(substr)-1);p++)
{
for(q=substr;*p==*q&&*q;p++,q++);
if(!*q)
{
flag=1;
break;
}
}
if(flag==1) puts("accord");
else puts("not accord");
system("pause");
}
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/384510.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/384510.shtml
英文地址,請注明出處:http://en.pswp.cn/news/384510.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言截取從某位置開始指定長度子字符串方法

c語言標準庫沒有截取部分字符串的函數&#xff0c;為啥&#xff1f;因為用現有函數strncpy&#xff0c;很容易做到&#xff01; char dest[4] {""}; char src[] {"123456789"}; strncpy(dest, src, 3); puts(dest); 輸出結果為 123 看到了嗎&#xff…

Modbus通訊協議詳細解釋

https://blog.csdn.net/rxiang12/article/details/79125813

V4L2框架分析

V4L2是Video for linux2的簡稱,為linux中關于視頻設備的內核驅動。v4L2是針對uvc&#xff08;USB Video Class&#xff09;免驅usb設備的編程框架&#xff0c;主要用于采集usb攝像頭等。 下圖是V4L2的框架&#xff0c;首先系統核心層分配設置注冊一個名為cdev結構體變量&#x…

Linux下IO多路復用之select函數的使用

select函數的作用&#xff1a; 如果我們的程序里有兩個需要阻塞的地方&#xff0c;例如要從服務器讀數據&#xff0c;同時還要從鍵盤上讀數據&#xff08;若不采用阻塞而用查詢的方式則大量占用系統資源&#xff09;。這個時候我們就有兩處阻塞&#xff0c;你當然可以用多線程或…

條件變量實現線程同步

(1) 什么是條件變量實現線程同步?   假如我們的程序中有兩個線程&#xff0c;一個是生產者線程&#xff0c;另一個是消費者線程&#xff0c;生產者線程每隔一段時間把數據寫入到緩沖區buffer中&#xff0c;而消費者線程則每隔一段時間從buffer中取出數據&#xff0c;為了避免…

mjpg-streamer框架分析

mjpg-streamer程框架圖如下所示&#xff1a; 程序運行起來后&#xff0c;主進程根據傳入的參數設置的輸入輸出通道打開對應的輸入輸出動態鏈接庫&#xff0c;并依次調用以下函數 1、輸入---倉庫-----輸出&#xff08;mjpg-streamer.h&#xff09; &#xff08;1&#xff09;gl…

用strace工具跟蹤系統調用

Linux下可以用strace工具查看應用程序的系統調用。 strace -h 查看能調用的參數 1.strace -o xwatv.log xwatv //-o xwatv.log 是指定將跟蹤信息存放在xwatv.log中&#xff0c;xwatv是指要跟蹤的命令或應用程序 2.把生成的log文件拷貝回windows下進行分析 主要分析open…

linux字符驅動之概念介紹

一、字符驅動框架 問&#xff1a;應用程序open、read、write如何找到驅動程序的open、read、write函數&#xff1f; 答:應用程序的open、read、write是在C庫里面實現的&#xff0c;它里面通過swi val指令去觸發一個異常&#xff0c;這個異常就會進入到內核空間&#xff0c;在內…

linux字符驅動之自動創建設備節點

上一節中&#xff0c;我們是手工創建設備節點&#xff0c;大家肯定也會覺得這樣做太麻煩了。 上一節文章鏈接&#xff1a;https://blog.csdn.net/qq_37659294/article/details/104302700 問&#xff1a;能不能讓系統自動創建設備節點&#xff1f; 答&#xff1a;可以&#x…

linux字符驅動之點亮LED

上一節中&#xff0c;我們講解了如何自動創建設備節點&#xff0c;這一節我們在上一節的基礎上&#xff0c;實現點亮LED。 上一節文章鏈接&#xff1a;https://blog.csdn.net/qq_37659294/article/details/104308284 驅動里面能夠用很多種方法實現LED驅動&#xff0c;其中有本…

USB攝像頭視頻監控項目學習筆記

一個攝像頭監控應用程序的系統調用如下所示&#xff1a; /* open * VIDIOC_QUERYCAP 確定它是否視頻捕捉設備,支持哪種接口(streaming/read,write) * VIDIOC_ENUM_FMT 查詢支持哪種格式 * VIDIOC_S_FMT 設置攝像頭使用哪種格式 * VIDIOC_REQBUFS 申請buffer 對于 str…

圖片縮放算法

項目背景&#xff1a;博主之前做過一個攝像頭采集數據&#xff0c;然后在LCD上顯示視頻數據的項目&#xff0c;假如我們攝像頭采集的一幀數據的分辨率比我們的LCD的分辨率要大&#xff0c;那么LCD則無法顯示整個圖像&#xff0c;這時候我們就要把這么一幀圖片進行縮放&#xff…

數碼相框項目之顯示一張可放大、縮小、拖拽的圖片

之前我做過一個電子相框的項目&#xff0c;涉及到的重難點主要為&#xff1a;在LCD上放大、縮小、移動圖片。 首先我們得明白的一點是&#xff1a;無論是放大或縮小&#xff0c;實際上都是對原圖進行等比例的縮小&#xff0c;然后在LCD上面顯示&#xff0c;只不過縮小的程度不…

TCP協議-如何保證傳輸可靠性

TCP協議傳輸的特點主要就是面向字節流、傳輸可靠、面向連接。這篇博客&#xff0c;我們就重點討論一下TCP協議如何確保傳輸的可靠性的。 確保傳輸可靠性的方式 TCP協議保證數據傳輸可靠性的方式主要有&#xff1a; 校驗和序列號確認應答超時重傳連接管理流量控制擁塞控制 校…

TCP協議-握手與揮手

認識TCP協議 TCP全稱為“傳輸控制協議”&#xff0c;這是傳輸層的一個協議&#xff0c;對數據的傳輸進行一個詳細的控制。 特點&#xff1a; 面向字節流安全可靠面向連接 TCP協議段格式 源端口號與目的端口號&#xff1a;這里與UDP的一樣&#xff0c;每個數據都要知道從哪個…

ASOC注冊過程

一、什么是ASOC 在嵌入式系統里面的聲卡驅動為ASOC&#xff08;ALSA System on Chip&#xff09; &#xff0c;它是在ALSA 驅動程序上封裝的一層&#xff0c;分為3大部分&#xff0c;Machine&#xff0c;Platform和Codec ,三部分的關系如下圖所示&#xff1a;其中Machine是指我…

ASOC調用過程

上一篇文章我們將了嵌入式系統注冊聲卡的過程&#xff1a;https://blog.csdn.net/qq_37659294/article/details/104748747 這篇文章我們以打開一個聲卡的播放節點為例&#xff0c;講解一下在APP調用open時&#xff0c;最終會如何調用到硬件相關的函數。 在上一篇文章最后我們說…

編寫聲卡驅動(框架)

在前面兩篇文章中&#xff0c;我們分別講了嵌入式Linux系統聲卡注冊的過程和調用的過程&#xff1a; https://blog.csdn.net/qq_37659294/article/details/104748747 https://blog.csdn.net/qq_37659294/article/details/104802868 講了那么多&#xff0c;我們最終的目的無非…

聲卡學習筆記

分享幾篇關于韋東山聲卡驅動的學習筆記&#xff0c;作者寫得非常詳細。 ALSA驅動框架&#xff1a;https://blog.csdn.net/qingkongyeyue/article/details/52328991 ASoC驅動框架&#xff1a;https://blog.csdn.net/qingkongyeyue/article/details/52349120 ASoC驅動重要結構…

路由器、交換機、集線器的區別

https://blog.csdn.net/weibo1230123/article/details/82779040