怎样在c中得到字符串数组

来源:百度知道 编辑:UC知道 时间:2024/06/30 01:16:04
假如我想得到一串字符(有空格),每个字符存在数组的一个里面,其中字符串个数未知,c中怎样操作
就是这道题:
JuliusCaesar生活在充满危险和阴谋的年代,为了生存,他首次发明了密码,用于军队的消息传递。假设你是Caesar军团中的一名军官,需要把Caesar发送的消息破译出来并提供给你的将军。消息的加密方法是:对消息原文中的每个字母,分别用该字母后的第5个字母替换,其他字符不变。输入数据最多不超过100个数据集,每个数据集由3个部分组成:
m) 起始行:START
n) 密码消息:由1-200个字符组成一行 ,o) 表示发出的一条消息
p) 结束行:END
q) 在最后一个数据集之后是另一行:ENDOFINPUT
r) 输出要求:每个数据集对应以行,s) 输出原始消息
输入样例:
START
NS BFW,JAJSYX TK NRUTWYYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
END
START
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ
END
START
IFSLJW PSTBX KZQQ BJQQ YMFY HFJZFW NX RTWJ IFSLJWTZX YMFS MJ
END
ENDOFINPUT

输出样例:
IN WAR, EVENTS OF IMPIRTANCE ARE THE RESULT OF TRIVIAL CAUSES
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN BILLAGE THAN SECOND IN ROME
DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUR THAN HE

好吧,我帮你写了
int main(){
char c,s[12];
while(scanf("%s",s),!s[5]){
scanf("\n");
while(scanf("%c",&c),c!='\n'){
if(c<='Z'&&c>='A'){
c-=5;
if(c<'A')c+=26;
}
printf("%c",c);
}
printf("\n");
scanf("%*s");
}
return 0;
}
你把你的输入样例直接粘进来试试,输出和你样例输出是一样的,不知道这是不是一道acm的题···

在C下是gets(char *str)
在C++下是cin.getline(char *str,int sizeof(str));
到网上查一下吧。