C++设计一个程序,让用户输入两串字母,存入两个字符数组中,然后将它们中下标相同的非空字符对调,再输出这两个新的字符串。用户输入的两串字母都小于20个(大小写不限),不包含其它字符,以回车完成输入。
时间: 2023-06-14 17:03:31 浏览: 295
下面是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 20
int main() {
char str1[MAX_LEN+1], str2[MAX_LEN+1];
fgets(str1, MAX_LEN+1, stdin);
fgets(str2, MAX_LEN+1, stdin);
int len1 = strlen(str1), len2 = strlen(str2);
if (str1[len1-1] == '\n') {
str1[len1-1] = '\0'; // 去掉末尾的换行符
len1--;
}
if (str2[len2-1] == '\n') {
str2[len2-1] = '\0'; // 去掉末尾的换行符
len2--;
}
int len = len1 < len2 ? len1 : len2;
for (int i = 0; i < len; i++) {
if (str1[i] != ' ' && str2[i] != ' ') {
char tmp = str1[i];
str1[i] = str2[i];
str2[i] = tmp;
}
}
printf("String 1: %s\n", str1);
printf("String 2: %s\n", str2);
return 0;
}
```
注意使用 `fgets` 函数来读取输入,这样可以避免输入过长导致的缓冲区溢出问题。同时还要注意处理输入字符串末尾的换行符和空格,以及两个字符串长度不一致的情况。
阅读全文