标题:近期在贴吧上看到一则关于单词逆序输出的程序 比如把“I love China" 输出为 ...
只看楼主
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
结帖率:90.91%
已结贴  问题点数:20 回复次数:8 
近期在贴吧上看到一则关于单词逆序输出的程序 比如把“I love China" 输出为”China love I"
对于这个问题 我认真思考了下,我的思路是:
   在一串字符串数据数据中 以一个空白字符为一个分割点 程序记录分割点的数量 并分别记录分割点的位置 把它们记入到一个数组中 后期让程序访问这个数组中的数据 数组里最后一个数据值为开始值 然后一直自减 直到结束 .
   这是我的代码,但这个程序有个问题:
     输入的数据最开始至少需要连个空白字符 输出才能按要求输出 这是我一直尝试解决的问题 却找不到办法 还希望各位给小弟指出更好的意见:
程序代码:
/* 单词逆序输出程序 */
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <windows.h>
void word_down(char *);
void main()
{
    char *date="  I love China";//注意 前两个数据是空白字符 两个空格
    char input_date[100];
    system("color 0E");
    printf("单词逆序输出程序:\n");
    printf("Sur date:\n");
    printf("%s\n",date);
    word_down(date);
    printf("please input any string again:");
    gets(input_date);
    word_down(input_date);
    printf("please input any key exit: ");
    getch();
}
void word_down(char *src)//单词逆序输出
{
    int i=0,c=0;
    int x=0,y=0;//数组中每两个数据
    int Temp_date[30];//临时数据 用来记录空白字符的位子
   
    while(src[i]!='\0'){
        if(!isalpha(src[i]))//用if语句 不能用while 会出错
        c++;
          Temp_date[c]=i;//记录每个空白字符的位置
        i++;
    }

    printf("Down Word !\n");//逆序后的单词
    while(c--){
       x=Temp_date[c];
       y=Temp_date[c+1];
       while(x++<y)
         printf("%c",src[x+1]);//需要注意的是 这里要 +1 否则输出会出问题
    }
    printf("\n");
}

  
这是小弟的愚见
   还希望各位大神 能给小弟指出解决的办法 关于这个程序代码 也希望能指出更好的意见 供小弟学习 谢谢!!
搜索更多相关主题的帖子: 字符串 China 单词 记录 
2015-04-13 17:56
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
得分:0 
这个是程序截图 :
 [local]2[/local]

<%谦虚学习,用心做人,没有最好,只有更好!%>
2015-04-13 17:58
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
得分:0 
刚发送失败 这是截图:
 [local]1[/local]

<%谦虚学习,用心做人,没有最好,只有更好!%>
2015-04-13 17:59
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:5 
嘿嘿 连续失败两次了
2015-04-13 18:07
lu3664198
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:55
专家分:185
注 册:2014-11-16
得分:5 
难道不是scanf %s1 %s2 %s3
然后printf %s3 %s2 %s1么

wwwwwww...~~;
本人为大一新生,说的不好不要拍我 ~ ( ̄~ ̄) ;
2015-04-13 20:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:5 
你试过单词之间有多个空格的情形吗?

授人以渔,不授人以鱼。
2015-04-13 21:22
z_j_j_1
Rank: 4
等 级:业余侠客
威 望:1
帖 子:62
专家分:213
注 册:2015-4-4
得分:5 
回复 楼主 逍风
我思考了一下,可以解决这个问题的,思路如下:
判断字符串的起始位和结束位,然后单独处理起始字符串和结束字符串。这样就可以了。
2015-04-14 11:53
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
得分:0 
回复 4楼 zklhp
额 怎么失败两次了

<%谦虚学习,用心做人,没有最好,只有更好!%>
2015-04-14 17:49
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
得分:0 
回复 7楼 z_j_j_1
这是个可行的一个方法 回头我试试 .

<%谦虚学习,用心做人,没有最好,只有更好!%>
2015-04-14 17:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-443952-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.836278 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved