当前位置: 技术问答>linux和unix
c实现字符串倒序输出
来源: 互联网 发布时间:2016-06-14
本文导语: 随便输入一个字符串,都能将它倒序输出 例如: 输入 :I am a student 输出 :student a am I | #include #include int main () { char str[] ="I am a student"; char *str2[8]; int icount = 0; const char * sp...
随便输入一个字符串,都能将它倒序输出
例如:
输入 :I am a student
输出 :student a am I
例如:
输入 :I am a student
输出 :student a am I
|
#include
#include
int main ()
{
char str[] ="I am a student";
char *str2[8];
int icount = 0;
const char * split = " ";
char * p;
p = strtok (str, split);
while(p!=NULL) {
str2[icount]=p;
icount++;
p = strtok(NULL,split);
}
int i=0;
for(i=0; inext) {
printf("%sn", list->data);
}
g_slist_free(head);
g_strfreev(tokens);
return 0;
}
#include
int main ()
{
char str[] ="I am a student";
char *str2[8];
int icount = 0;
const char * split = " ";
char * p;
p = strtok (str, split);
while(p!=NULL) {
str2[icount]=p;
icount++;
p = strtok(NULL,split);
}
int i=0;
for(i=0; inext) {
printf("%sn", list->data);
}
g_slist_free(head);
g_strfreev(tokens);
return 0;
}
|
void reserve(char * str, int len){
if (len =1){
printf ("%s",*str)
}
else{
print("%s",*str)
reserve(str+1, len-1)
}
}
|
不要用递归实现,栈开销太大,事实上,作大型项目时,尤其是嵌入式项目,
首先最忌讳的一点就是递归,所以请初学者养成不用递归写程序的习惯,
见到递归程序不要 赞,要 扁,呵,开玩笑,
我在linux下写了个程序,把思路说一下,linux机器不能上网,懒得copy过来,
思路就是用strtok函数区解析空格,然后做一个栈的数据结构,
依次让解析出来的字符串压栈,
全部解析完成后,出栈即可。
如果lz没有听懂,想要源码,可以和我说一下,我提供给你。
首先最忌讳的一点就是递归,所以请初学者养成不用递归写程序的习惯,
见到递归程序不要 赞,要 扁,呵,开玩笑,
我在linux下写了个程序,把思路说一下,linux机器不能上网,懒得copy过来,
思路就是用strtok函数区解析空格,然后做一个栈的数据结构,
依次让解析出来的字符串压栈,
全部解析完成后,出栈即可。
如果lz没有听懂,想要源码,可以和我说一下,我提供给你。
|
遇见空格就得到一个词语,词语压栈,到整个字符串结束,词语弹出栈,栈空 结束
|
两次逆序,老问题了