#include<string.h> #include<stdio.h> //如果t是s的子串,返回在s中起始下标,不是子串返回-1int fun(char *s,char *t) //********beqin***********// //xxxxxxxend***xX*******// int nain(void) 《 char str1[30] ,str2[10]; gets(str1); gets(str2); printf(“%d”,fun(str1,str2)); 6; return
时间: 2023-07-19 16:08:45 浏览: 54
代码存在一些问题:
1. 函数名应该是 main 而不是 nain。
2. 函数 fun 中缺少函数体,应该在 beqin 和 end 之间添加函数体。
3. printf 语句中缺少结束的分号。
4. 函数 fun 的返回值应该是 int 类型而不是 void 类型。
5. gets 函数存在安全问题,应该使用 fgets 替代。
以下是修改后的代码:
```
#include <stdio.h>
#include <string.h>
int fun(char *s, char *t) {
// 在这里添加函数体
return -1; // 如果不是子串返回-1
}
int main() {
char str1[30], str2[10];
fgets(str1, 30, stdin);
fgets(str2, 10, stdin);
printf("%d", fun(str1, str2));
return 0;
}
```
相关问题
//查找子串 //查找子串 #include<string.h> #include<stdio.h> //如果t是s的子串,返回在s中起始下标,不是子串返回-1 int fun(char *s,char *t) { //********begin***********// //*******end************// } int main(void) { char str1[30],str2[10]; gets(str1); gets(str2); printf("%d", fun(str1,str2)); return 0; }补全该程序
可以使用C语言的字符串库函数strstr()来判断一个字符串是否是另一个字符串的子串。如果是,则返回在主串中的起始下标;如果不是,则返回NULL。
下面是完整的程序实现:
```
#include <stdio.h>
#include <string.h>
//如果t是s的子串,返回在s中起始下标,不是子串返回-1
int fun(char *s, char *t) {
char *p = strstr(s, t);
if (p) {
return p - s;
} else {
return -1;
}
}
int main(void) {
char str1[30], str2[10];
gets(str1);
gets(str2);
printf("%d", fun(str1, str2));
return 0;
}
```
函数fun()接受两个指向字符数组的指针,分别表示主串和子串。它首先调用strstr()函数判断子串是否是主串的子串,如果是,则计算出子串在主串中的起始下标并返回;如果不是,则返回-1。
在main()函数中,通过gets()函数分别读入主串和子串,并调用fun()函数进行判断。最后将结果输出。
插入子串* 分数 10 作者 李祥 单位 湖北经济学院 请编写函数,在目的串中插入源串。 函数原型 char* StrInsert(char *dst, int idx, const char *src); 说明:dst 为指示目的串起始地址的指针,idx 为插入位置(下标),src 为指示源串起始地址的指针。函数在目的串 dst 下标 idx 处插入源串 src,函数值为 dst。若 idx 不正确,则不插入子串。 要求:直接在原数组上完成操作,不要借助其它数组。 裁判程序 #include <stdio.h> char* StrInsert(char *dst, int idx, const char *src); int main() { char a[1024], b[1024]; int i; gets(a); scanf("%d%*c", &i); gets(b); StrInsert(a, i, b); puts(a); return 0; } /* 你提交的代码将被嵌在这里 */
```
#include <stdio.h>
#include <string.h>
char* StrInsert(char *dst, int idx, const char *src) {
int dst_len = strlen(dst);
int src_len = strlen(src);
int i;
if (idx < 0 || idx > dst_len) {
return dst;
}
for (i = dst_len; i >= idx; i--) {
*(dst + i + src_len) = *(dst + i);
}
for (i = 0; i < src_len; i++) {
*(dst + i + idx) = *(src + i);
}
return dst;
}
int main() {
char a[1024], b[1024];
int i;
gets(a);
scanf("%d%*c", &i);
gets(b);
StrInsert(a, i, b);
puts(a);
return 0;
}
```
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)