當前位置:首頁 » 編程語言 » c語言strstr用法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言strstr用法

發布時間: 2022-01-17 18:57:28

『壹』 c語言 strstr和strrpl庫函數的作用是什麼

標准C語言實現下列標准庫函數,設計中不得使用其他庫函數。
strstr庫函數:

char *strstr(char *str1,char *str2);
在字元串str1中,尋找字串str2,若找到返回找到的位置,否則返回NULL。

#include <iostream>

char *strstr(const char *str1, const char *str2);

char *strstr(const char *str1, const char *str2)
{
char *s1, *s2;
assert ((str1 != (char *)0) && (str2 != (char *)0));

/* 空字元串是任務字元串的子字元串 */
if ('\0' == *str2)
{
return ((char *)str1);
}

while (*str1)
{
s1 = (char *)str1;
s2 = (char *)str2;

while ((*s1 == *s2) && *s1 && *s2)
{
s1++;
s2++;
}
if ('\0' == *s2)
{
return ((char *)str1);
}
str1++;
}
/* 查找不成功,返回NULL */
return ((char *)0);
}

int main(int argc,char *argv[])
{

char a[20]="abcde";
char b[20]="bc";
printf("%s\n", strstr(a,b));

system ("pause");
return 0;
}

strrpl庫函數:

/* 把 s 中的字元串 s1 替換成 s2 */

char *strrpl(char *s, const char *s1, const char *s2)

{

char *ptr;

while (ptr = strstr(s, s1)) /* 如果在s中找到s1 */

{

memmove(ptr + strlen(s2) , ptr + strlen(s1), strlen(ptr) - strlen(s1) + 1);

memcpy(ptr, &s2[0], strlen(s2));

}

return s;

}

『貳』 請問C語言中strstr(strcat(str1,str2),str3)是什麼意思

strstr(strcat(str1, str2), str3);用於將str2連接到str1後面,構成新的字元串,然後在新字元串中查找包含str3的位置,
同時將該位置以後的字元串整個返回。

strcat(str1, str2)是將str2連接到str1末尾,由於strcat沒有做字元串長度檢查,必須保證傳入的str1的剩餘空間能夠容納
下str2,比如:
char str1[100] = "Hello";
char str2[] = world;
那麼strcat(str1, str2)返回的結果是:Helloworld
但如果str1長度只有"Hello",則會出現不可預料的錯誤。

strstr(str1, str2)則會在str1中查找str2,同時返回剩下的字元串,
比如:
char str1[] = "Hello";
char str2[] = "e";
則strstr(str1, str2)返回結果為: ello

『叄』 關於C語言中strstr()函數的使用

因為這個函數是查找匹配的子字元串,如果沒有找到完全匹配的就往回空
所以p
==
NULL
cout<<p;就是
cout
<<NULL;這個肯定會掛的
正確的做法就是
if(p)
cout
<<p;
else
cout<<"not
match"<<endl;

『肆』 C語言strstr()函數

循環,每次從第一個字元串中取出長度與第二個字元串相等的字元串(N個),進行比較,若不等則再從第二個字元開始取N個,再與第二個比較,可以使用指針來進行操作,指向字元串首地址,若第一次比較不對則指針地址加1,指向第二個字元

『伍』 C語言函數strstr的函數原型extern char *strstr(char *str1, char *str2);

extern 定義在前面
extern可以置於變數或者函數前,以標示變數或者函數的定義在別的文件中,提示編譯器遇到此變數和函數時在其他模塊中尋找其定義
extern "C"的作用是,告訴C++編譯器,下面的代碼按照C的方式進行編譯

我不是不懂extern修飾符的含義,我是問,為什麼函數原型前面加一個extern修飾符?
不是很清楚嗎 有這個表示 是說明 他在別的文件 裡面有定義 編譯器 要知道 你在別的文件中定義 使用 但是要在別的文件裡面使用它 不告訴編譯器 他知道 嘛 你知道不管用

『陸』 string類型用法中有類似C語言里strstr的用法嗎

可以把string類型,轉成c語言的str類型,再使用strstr函數即可。

const char* ptr = string.c_str();
str = strstr(ptr)

『柒』 strstr函數的用法。。。。。。。。。。。。。。。

C++函數原型:

const char * strstr ( const char * str1, const char * str2 );

char * strstr ( char * str1, const char * str2 );

C函數原型:

char * strstr ( const char *, const char * );

a字元串里 查看是否有b字元串,

有則 從首次發現b字元串處 返回 a字元串。

沒有則輸出 null

例子:

char st[]="abc 1234 xyz";

printf("%s",strstr(st,"34") );

列印出:

34 xyz


(7)c語言strstr用法擴展閱讀

#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 ");

『捌』 C語言 尋找字元串!要求:用strstr函數。

//---------------------------------------------------------------------------

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

int main(void)
{
char s1[80],s2[70];
scanf("%s",s1); /*輸入第一個字元串,以回車結束*/
fflush(stdin);
scanf("%s",s2); /*輸入第二個字元串,以回車結束*/
printf("%d",strstr(s1,s2)-s1+1); /*輸出結果*/
return 0;
}
//---------------------------------------------------------------------------

『玖』 C語言中,strstr函數的功能是什麼不用庫函數,自己寫怎麼寫

C語言中,strstr函數的功能是尋找字元串中子串出現的位置,自己寫的步驟如下。

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。