编写一个函数int substr(char str1[],char str2[],int index),其作用是,将从字符串str1 (长度超过30) 的第index个字符开始的所有字符复制,生成新的字符串str2,如果成功生成,函数返回1,如果不能成功生成,返回0
时间: 2023-05-02 19:03:10 浏览: 188
这段代码是一个函数,函数名为substr,接收两个字符数组参数 str1 和 str2,以及一个整型参数 index。函数的作用是从 str1 字符串的第 index 个字符开始复制所有字符,生成新的字符串 str2。如果成功生成,则返回值为1,否则返回0。
相关问题
编写一个函数totsubstrnum(char *str,char *substr),它的功能是统计子字符串substr在字符串str中出现的次数
好的,下面是函数的实现:
```c
int totsubstrnum(char *str, char *substr) {
int count = 0;
int str_len = strlen(str);
int substr_len = strlen(substr);
for (int i = 0; i <= str_len - substr_len; i++) {
if (strncmp(str + i, substr, substr_len) == 0) {
count++;
}
}
return count;
}
```
函数的参数是两个字符串指针 `str` 和 `substr`,返回值是子字符串 `substr` 在字符串 `str` 中出现的次数。
函数的实现比较简单,就是遍历字符串 `str` 的所有可能的子字符串,如果找到了一个与 `substr` 相同的子字符串,就将计数器 `count` 加 1。最后返回计数器的值即可。
注意,这里使用了 C 语言的库函数 `strncmp` 来比较两个字符串的前缀是否相同。`strncmp` 函数的第一个参数是一个指向字符串的指针,第二个参数是另一个指向字符串的指针,第三个参数是要比较的字符数。如果前缀相同,就返回 0,否则返回一个非零值。
希望能够帮助到你!
c++编写一个函数 int fun(char *str,char*substr),该函数可以统计子字符串substr在母字符串str中出现的次数,并将该次数作为函数值返回。
好的,以下是C++代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int fun(char *str, char *substr){
int count = 0;
int str_len = strlen(str);
int substr_len = strlen(substr);
for(int i=0; i<=str_len-substr_len; i++){
bool match = true;
for(int j=0; j<substr_len; j++){
if(str[i+j] != substr[j]){
match = false;
break;
}
}
if(match){
count++;
}
}
return count;
}
int main(){
char str[100], substr[100];
cin >> str >> substr;
int count = fun(str, substr);
cout << count << endl;
return 0;
}
```
函数`fun`接收两个参数:原字符串`str`和子字符串`substr`,返回子字符串在原字符串中出现的次数。函数内部使用两层循环遍历原字符串,依次比较每个子串是否等于目标子字符串,如果相等则计数器加1。最后返回计数器的值即可。
在主函数中,你可以输入原字符串和子字符串,程序会调用`fun`函数计算出子字符串在原字符串中出现的次数,并输出结果。
阅读全文