我正在嘗試制作一個程式來檢查一個字串是否包含另一個字串的子字串,但它不起作用。
這是我的代碼:
#include <iostream>
#include <algorithm>
using namespace std;
//Struct to store information
struct strings {
char string1[20], string2[20];
} strings;
//Function to check if the strings are equal
void equalCheck(){
int check = 0, i = 0;
while (strings.string1[i] != '\0' || strings.string2[i] != '\0'){
if (strings.string1[i] != strings.string2[i]){
check = 1;
break;
}
i ;
}
if (check == 0){
cout << "The strings are equal" << endl;
}
else
cout << "The strings are not equal" << endl;
}
//Function to check for a substring
void substringCheck(){
if (strings.string1.find(strings.string2) != string::npos) {
cout << "found!" << '\n';
}
}
int main() {
//Ask the user for two strings
cout << "Please type the first string: ";
cin >> strings.string1;
cout << "Please type the second string: ";
cin >> strings.string2;
//Prints out the two strings
//cout << "The two strings are " << strings.string1 << " and " << strings.string2;
equalCheck();
substringCheck();
return 0;
}
這是我得到的問題:

有任何想法嗎?這是我第一次使用 C ,我正在嘗試使用我的基本 C 知識!
謝謝 :)
uj5u.com熱心網友回復:
strings有兩個std::string而不是兩個不是更容易char[20]嗎?
然后你就可以毫無問題地說出這個:
if (strings.string1.find(strings.string2) != std::string::npos) {
std::cout << "found!" << '\n';
}
char不是像 那樣的類std::string,它沒有任何成員函式。這意味著 char[20].find 不存在。std::string然而是一個類。它確實有一個名為 的成員函式std::string::find(),因此對 a 執行此操作std::string是合法的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/351929.html
