#include<stdio.h>
#include<string.h>
char strs[1010][1010];
int cnt=0,res=0;
char ans[100];
int main()
{
while(scanf("%s",strs[++cnt])!=EOF);
--cnt;//这样保证了cnt的值就为输入字符串的数量,因为EOF也占用一个
char s[1010];
for (int i=0;i<= 1010; i ++)//第一层循环是代表了长度
{
int f = 1;//和flag的功能一样,就是判断不满足的情况跳出循环的
if(strlen(strs[1]) == i) f = 0; //这个地方判断字符串的长度是否到头了,如果到头了就不存在什么所谓的公共前缀了
for (int j = 2; j <= cnt; j ++) //再套入一个循环,进行接下来的判断
{
if(strlen(strs[j]) == i) f = 0;
if(strs[j][i] != strs[j - 1][i]) f = 0; //每一个字符串再跟上一个的同一列的字符进行比较
}
if(f == 0) break;
s[++res] = strs[1][i];
}
for(int i=1;i<=res;i++) printf("%c", s[i]);
return 0;
}
虽然是在大佬帮助下完成的,但是我对二维字符串的输入有了一定的认识(二位字符串的输入一直不太会555),嗯,先这样吧