用字符数组作函数参数,编程实现在从键盘输入的字符串(假设长度小于80)中查找与指定的子串,并输出该子串在字符串中首次出现的位置,如果该字符不存在,则输出"Not found!"。
时间: 2024-03-12 10:46:51 浏览: 64
好的,我可以帮你编写这个函数。以下是C++的实现代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void findSubstring(char str[], char sub[]) {
int len1 = strlen(str);
int len2 = strlen(sub);
int pos = -1;
for (int i = 0; i <= len1 - len2; i++) {
bool found = true;
for (int j = 0; j < len2; j++) {
if (str[i+j] != sub[j]) {
found = false;
break;
}
}
if (found) {
pos = i;
break;
}
}
if (pos == -1) {
cout << "Not found!" << endl;
} else {
cout << "Substring found at position " << pos << endl;
}
}
int main() {
char str[81];
char sub[81];
cout << "Enter a string (max length 80): ";
cin.getline(str, 81);
cout << "Enter a substring to find: ";
cin.getline(sub, 81);
findSubstring(str, sub);
return 0;
}
```
在这个程序中,我们首先定义了一个 `findSubstring` 函数,它接受两个字符数组作为参数,分别表示要查找的字符串和子串。接着,我们计算出字符串和子串的长度,并使用嵌套的循环来逐个比较字符串的每个子串是否与子串相等。如果找到了匹配的子串,我们记录下它在原字符串中的位置,并退出循环。最后,如果没有找到子串,我们输出 "Not found!",否则输出找到的位置。
在主函数中,我们通过 `cin.getline` 函数从键盘读取字符串和子串,并将它们传递给 `findSubstring` 函数进行查找。
阅读全文