思路:
1、为什么做字符反转:每个字符串的长度难以确定,导致很难比较后缀,进行反转后,将后缀转为前缀方便比较
2、使用gets一定要注意用getchar吸收多余字符
3、比较完最短的字符串就可得到结果
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
void reverse(char s[],int len) {
for (int i = 0; i < len / 2; i++) {
char temp = s[i];
s[i] = s[len - 1 - i];
s[len - 1 - i] = temp;
}
}
int main() {
int n;
char mp[300][300] = {};
char res[300] = {};
cin >> n;
int minlen = INT_MAX;
bool flag = true;
getchar();
for (int i = 0; i < n; i++) {
gets_s(mp[i]);
int len = strlen(mp[i]);
minlen = min(minlen, len);
reverse(mp[i], len);
}
int num = 0;
for (int j = 0; j < minlen; j++) {
char x = mp[0][j];
for (int i = 0; i < n; i++) {
if (x != mp[i][j])
flag = false;
}
if (flag)
res[num++] = x;
}
if (num==0)
cout << "nai";
else
for (int i = num - 1; i >= 0; i--)
cout << res[i];
system("pause");
return 0;
}