1个回答
展开全部
strstr 从一个字符串中查找子字符串。
第一个参数是待查找字符串的地址,第二个参数是被查找子字符串的地址。
返回待查找字符串中子字符串的首字符地址。如果子字符串不存在则返回空指针。
char str[] = "abcdefghijklmn";
char str1[] = "efg";
char str2[] = "hijk";
char str3[] = "nop";
char *pstr1, *pstr2, *pstr3;
pstr1 = strstr(str, str1);
pstr2 = strstr(str, str2);
pstr3 = strstr(str, str3);
printf("%s, %s, %s", pstr1, pstr2, pstr3);
输出:
efghijklmn, hijklmn, (null)
第一个参数是待查找字符串的地址,第二个参数是被查找子字符串的地址。
返回待查找字符串中子字符串的首字符地址。如果子字符串不存在则返回空指针。
char str[] = "abcdefghijklmn";
char str1[] = "efg";
char str2[] = "hijk";
char str3[] = "nop";
char *pstr1, *pstr2, *pstr3;
pstr1 = strstr(str, str1);
pstr2 = strstr(str, str2);
pstr3 = strstr(str, str3);
printf("%s, %s, %s", pstr1, pstr2, pstr3);
输出:
efghijklmn, hijklmn, (null)
追问
和find的区别呢。还有,您是否知道用这个函数如何在《阿狸的打字机》中得到70分的。
追答
find 是 C++ 的 string 类中的函数。返回的值是该子字符串在查找字符串中出现的位置:
string str("abcdefghijklmn");
string str1("efg");
string str2("hijk");
string str3("nop");
size_t nch1, nch2, nch3;
nch1 = str.find(str1);
nch2 = str.find(str2);
nch3 = str.find(str3);
if (nch1 != string::npos)
cout<<str1<<" at: "<<int(nch1)<<endl;
if (nch2 != string::npos)
cout<<str2<<" at: "<<int(nch2)<<endl;
if (nch3 != string::npos)
cout<<str3<<" at: "<<int(nch3)<<endl;
输出:
efg at: 4
hijk at: 7
注意,第三行没有输出。当未找到字符串时,该 nch3 的值为 -1。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询