一道C语言编程题目
有一个字符串,"howareyou!",要求用C编写一段代码,运行输出"you!arehow",请大家赐教....
有一个字符串,"how are you!",要求用C编写一段代码,运行输出"you! are how",请大家赐教.
展开
2个回答
展开全部
用一个函数来分析这个字符串,比如叫void parse()。
parse()需要完成的功能就是从头到尾一个字符一个字符的分析,如果不是空格则放入一个临时字串的尾部,遇到是空格的字符便将临时字串压到字串栈里,然后开始分析下一个字符,直到所有字符都分析完。
这时候栈里有了三个字串,从下到上,分别为:“ how”、“are”、“you!”
这时候只需要依次出栈并打印并加空格就可以了。
这时候就打印出来"you! are how",不知道这样说能不能理解其中的中心思想。
伪码:
char tmp;
char[maxsize] buf;
while(!endOfString()){
tmp = getNextChar();//从字串中获取下一个字符
if (tmp!=' ')//如果不是空格
buf[nextIndex]=tmp;
else
push(buf, stack);
}
while(stack.IsNotEmpty())
{
printf("%s ",stack.pop());
}
parse()需要完成的功能就是从头到尾一个字符一个字符的分析,如果不是空格则放入一个临时字串的尾部,遇到是空格的字符便将临时字串压到字串栈里,然后开始分析下一个字符,直到所有字符都分析完。
这时候栈里有了三个字串,从下到上,分别为:“ how”、“are”、“you!”
这时候只需要依次出栈并打印并加空格就可以了。
这时候就打印出来"you! are how",不知道这样说能不能理解其中的中心思想。
伪码:
char tmp;
char[maxsize] buf;
while(!endOfString()){
tmp = getNextChar();//从字串中获取下一个字符
if (tmp!=' ')//如果不是空格
buf[nextIndex]=tmp;
else
push(buf, stack);
}
while(stack.IsNotEmpty())
{
printf("%s ",stack.pop());
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询