strcmp strstr函数原型
时间: 2024-04-04 10:28:20 浏览: 120
strcmp函数的原型是:
```c
int strcmp(const char *str1, const char *str2);
```
该函数用于比较两个字符串的大小。它接受两个参数,分别是要比较的两个字符串str1和str2。函数返回一个整数值,表示两个字符串的大小关系。
如果返回值为0,表示两个字符串相等;
如果返回值小于0,表示str1小于str2;
如果返回值大于0,表示str1大于str2。
strstr函数的原型是:
```c
char *strstr(const char *haystack, const char *needle);
```
该函数用于在一个字符串中查找另一个字符串的第一次出现。它接受两个参数,分别是要查找的字符串haystack和要查找的子字符串needle。函数返回一个指向第一次出现的子字符串的指针。
如果找到了子字符串,返回指向该子字符串的指针;
如果未找到子字符串,返回NULL。
相关问题
任务描述 在C语言中<string.h>头文件内,实现了strstr()函数,其函数原型为: extern char *strstr(char *str1, const char *str2); 它的作用是:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。 下面,请你设计算法简单实现函数strstr(),若存在返回子串首次出现的下标(从0开始),若不存在返回-1。 编程要求 输入 多组数据,每组数据有一行,分别为字符串str1、str2(用空格分开),当两串都为”0”时输入结束。 输出 对于每组数据分别输出一行,若子串存在返回子串首次出现的下标(从0开始),若不存在返回-1; 测试说明 平台会对你编写的代码进行测试: 测试输入: bjfuacm bjfu datastructure hello aaaaaaaaaaab ab 0 0 预期输出: 0 -1 10
抱歉,我可以回答这个问题。
以下是算法的代码实现:
#include <stdio.h>
#include <string.h>
int strstr_index(char* str1, char* str2){
int len1 = strlen(str1);
int len2 = strlen(str2);
if(len2 > len1){
return -1;
}
for(int i=0; i<=len1-len2; i++){
int j=0;
while(j<len2){
if(str1[i+j] != str2[j]){
break;
}
j++;
}
if(j == len2){
return i;
}
}
return -1;
}
int main(){
char str1[101], str2[101];
while(scanf("%s %s", str1, str2)){
if(strcmp(str1, "0") == 0 && strcmp(str2, "0") == 0){
break;
}
int index = strstr_index(str1, str2);
printf("%d\n", index);
}
return 0;
}
阅读全文