让用户输入两串字母,存入两个字符数组中,然后将它们中下标相同的非空字符对调,再输出这两个新的字符串。用户输入的两串字母都小于20个(大小写不限),不包含其它字符,以回车完成输入c++ 用指针
时间: 2024-11-30 13:20:26 浏览: 10
在C++中,你可以使用指针来实现这个功能。首先,你需要定义两个字符数组来存储用户的输入,并创建两个指向字符数组的指针。接下来,遍历两个数组并比较对应的字符,如果相等则不需要交换,否则就用指针操作进行对调。下面是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
void swapChars(char* arr1, char* arr2, int index) {
// 检查索引是否有效
if (index >= 0 && index < strlen(arr1)) {
char temp = *arr1;
*arr1 = *arr2;
*arr2 = temp;
}
}
int main() {
const int MAX_LENGTH = 20; // 用户输入的最大长度
// 输入第一个字符串
cout << "请输入第一串字母(不超过20个字符,回车结束):" << endl;
char str1[MAX_LENGTH];
cin.getline(str1, MAX_LENGTH);
// 输入第二个字符串
cout << "请输入第二串字母(不超过20个字符,回车结束):" << endl;
char str2[MAX_LENGTH];
cin.getline(str2, MAX_LENGTH);
// 创建指针指向字符串
char* ptr1 = str1;
char* ptr2 = str2;
// 遍历字符串
for (int i = 0; i < MAX_LENGTH && ptr1[i] != '\0' && ptr2[i] != '\0'; i++) {
// 如果字符相等,则跳过
if (ptr1[i] == ptr2[i]) continue;
// 对应位置的字符进行交换
swapChars(ptr1, ptr2, i);
}
// 输出处理后的字符串
cout << "处理后的第一串字母:";
for (char c : str1) {
cout << c;
}
cout << endl;
cout << "处理后的第二串字母:";
for (char c : str2) {
cout << c;
}
cout << endl;
return 0;
}
```
阅读全文