| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3583 人关注过本帖, 1 人收藏
标题:将一个字符数组中的字符按单词倒排,哪位大神能解决一下?
只看楼主 加入收藏
wangzhao8550
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:32
专家分:139
注 册:2011-4-17
结帖率:66.67%
收藏(1)
已结贴  问题点数:20 回复次数:15 
将一个字符数组中的字符按单词倒排,哪位大神能解决一下?
题目:输入一个句子,例如:"peak,i can play",将该句按单词倒排,标点符号都转化成空格符输出,结果:"play can i peak".
最好能加上解释语句

搜索更多相关主题的帖子: 标点符号 
2011-04-17 17:06
tang_ke
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:45
专家分:46
注 册:2010-10-12
收藏
得分:0 
这个不难,你等下我写好了给你
2011-04-17 17:17
thlgood
Rank: 5Rank: 5
等 级:职业侠客
帖 子:281
专家分:381
注 册:2010-9-24
收藏
得分:0 


[ 本帖最后由 thlgood 于 2011-4-17 18:41 编辑 ]

o(∩∩)Linux & Python 群:187367181
2011-04-17 17:29
thlgood
Rank: 5Rank: 5
等 级:职业侠客
帖 子:281
专家分:381
注 册:2010-9-24
收藏
得分:0 
失误,失误!!!,再写一遍……

o(∩∩)Linux & Python 群:187367181
2011-04-17 17:36
菜鸟auto
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:100
注 册:2010-7-23
收藏
得分:0 
#include<stdio.h>
#include<string.h>
#define N 100
int main()
{
    char str[N];
    int length , count=0;
    int i,j;

    printf(" input a string:\n");
   
    gets(str);

    length=strlen(str);//测试字符串的长度
   
    for(i=length-1;i>=0;i--)//从后向前循环
    {
        if(str[i]==' ')//遇到空格输出空格后的单词
        {
            for(j=i+1;j<=i+count;j++)
            {
                printf("%c",str[j]);
            }
            printf(" ");
            count=0;
        }

        else
            count++;//统计单词的长度
    }

   for(i=0;i<count;i++)
   {
       printf("%c",str[i]);
   }
   
   getchar();
    return 0;
}
前几天有人发的和你样的帖子,这是我写的。很粗糙的程序。望高手指点。
还有一个是用指针写的 你可以在论坛搜一下。
收到的鲜花
  • wangzhao85502011-04-17 18:58 送鲜花  3朵   附言:谢谢~
2011-04-17 17:40
tang_ke
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:45
专家分:46
注 册:2010-10-12
收藏
得分:5 
#include<stdio.h>
#include<stdlib.h>
int main()
{
    printf("输入单词,然后倒叙排列,所有符号都转化为空格输出:\n");
    char a[10000];
    int i;
    int n=0;
    for(i=0;i<10000;i++)
    {
       scanf("%c",&a[i]);
        n++;
        
        if(a[i]=='#')
        {
            printf("\n整理后的序列为:\n");
            int b=n-2;
            
            for(i=0;b>=0;b--){
                if((a[b]<64||a[b]>122)&&(90<a[b]<97))
                {printf(" ");b=b-1;}
                printf("%c",a[b]);
            }
            printf("\n");
            return 0;
            
        }

        
    }

}
2011-04-17 18:04
tang_ke
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:45
专家分:46
注 册:2010-10-12
收藏
得分:2 
回复 6楼 tang_ke
注意,输入是以字符'#'来结束输入的哦!
收到的鲜花
  • wangzhao85502011-04-17 19:00 送鲜花  3朵   附言:谢谢~
2011-04-17 18:06
tang_ke
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:45
专家分:46
注 册:2010-10-12
收藏
得分:0 
回复 6楼 tang_ke
注意,输入是以字符'#'来结束输入的哦!
2011-04-17 18:06
thlgood
Rank: 5Rank: 5
等 级:职业侠客
帖 子:281
专家分:381
注 册:2010-9-24
收藏
得分:0 
=========================================================
来一段比较精简的吧,我的这个不需要像楼上那样,以 ‘#’结束
我这个的话,输完直接敲回车
========================================================

程序代码:
#include <stdio.h>
int main()
{
    int i = 0, j = 1;
    char Str[50];
    char *p[20];
    gets(Str);
    p[0] = &Str[0];
    while (Str[i] != '\0')
    {
        if(Str[i] == ' ')
        {
            Str[i] = '\0';
            p[j] = &Str[i+1];
            j++;
        }
        i++;
    }
    for(j = j-1; j > -1; j--)
    {
        printf("%s ", p[j]);
    }

    return 0;
}


[ 本帖最后由 thlgood 于 2011-4-17 18:41 编辑 ]
收到的鲜花
  • wangzhao85502011-04-17 20:17 送鲜花  3朵   附言:受教了

o(∩∩)Linux & Python 群:187367181
2011-04-17 18:39
菜鸟auto
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:100
注 册:2010-7-23
收藏
得分:7 
回复 9楼 thlgood
高! 学习了 呵呵!
2011-04-17 19:09
快速回复:将一个字符数组中的字符按单词倒排,哪位大神能解决一下?
数据加载中...
 
   



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

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