输入两个字符串并比较这两个英文字符串的不相同的字符的位置(忽略字母大小写)不用ctype.h
时间: 2024-05-11 09:16:34 浏览: 54
对于两个输入的字符串的比较
好的,你的问题是关于比较两个英文字符串不同字符位置的问题。首先,我们需要将两个字符串转换为小写或大写字母,以便进行比较。然后,我们可以遍历字符串中的每个字符并将其与另一个字符串中的相应字符进行比较。如果这两个字符不同,则将其位置存储到一个数组中。最后,我们可以输出这个数组来显示这两个字符串不同字符的位置。以下是C++代码实现:
```
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1, str2;
cout << "请输入第一个字符串: ";
getline(cin, str1);
cout << "请输入第二个字符串: ";
getline(cin, str2);
// 将两个字符串转换为小写字母
for(int i=0; i<str1.length(); i++)
str1[i] = tolower(str1[i]);
for(int i=0; i<str2.length(); i++)
str2[i] = tolower(str2[i]);
// 比较两个字符串不同字符的位置
int diff[100], cnt=0;
for(int i=0; i<str1.length(); i++) {
if(str1[i] != str2[i]) {
diff[cnt++] = i+1;
}
}
// 输出结果
if(cnt == 0) {
cout << "这两个字符串相同" << endl;
} else {
cout << "这两个字符串不同的字符位置为:";
for(int i=0; i<cnt; i++) {
cout << " " << diff[i];
}
cout << endl;
}
return 0;
}
```
这段代码可以接受用户输入两个字符串,并通过遍历字符串来比较它们的不同字符的位置。要忽略字母的大小写,我们使用标准库函数tolower()将字符转换为小写字母。最后,我们输出一个包含不同字符位置的数组,如果这两个字符串相同,我们将输出一条消息表示它们是相同的。
阅读全文