| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7791 人关注过本帖
标题:颠倒句子中的单词顺序。
取消只看楼主 加入收藏
百里
Rank: 2
等 级:论坛游民
帖 子:34
专家分:66
注 册:2016-10-1
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
颠倒句子中的单词顺序。
感觉有几个地方不对劲但是又不知道错在哪里?求大神指点!!!
这个程序的功能是输入:I love you!
输出:you love I!
就是将一句话的单词反过来输出,怎解???迷茫呀。
//////////////////////////////////////////
//////////////////////////////////////////
#include"stdio.h"
#define N 100
int Inverse(char str1[], char str2[][N]) ;

int main()
{
    char str1[N],
         str2[N][N],
          *pret=str2 ;
    int ret, i ;
    printf("Input a sentence:") ;
    gets(str1) ;
    ret=Inverse(str1, str2) ;
    for(i=0 ;i<ret-2 ;i++, pret++)
    {
        printf("%s ",*pret) ;
    }
    printf("%s%c\n", *pret, *(++pret)) ;
    return 0 ;
}
int Inverse(char str1[], char str2[][N])
{
    int i, count = 1,counter = 0, j, k ;
    for(i=0 ;str1[i]!='\0' ;i++, counter++)
    {
        if(str1[i]!=' ')
        {
            continue ;
        }
        else
        {
            count++ ;
        }
    }
    for(i=0, j=count-1, k=i ;i<counter ;i++, k++)
    {
        if(str1[i]!=' ')
        {
            str2[j][k] = str1[i] ;
        }
        else
        {
            j-- ;
            k= 0 ;
        }
    }
    k= 0 ;
    str2[count][k]= str1[counter] ;
    str2[count][k+1]= '\0' ;
    return count ;
}
搜索更多相关主题的帖子: include 单词 
2016-11-07 22:32
百里
Rank: 2
等 级:论坛游民
帖 子:34
专家分:66
注 册:2016-10-1
收藏
得分:0 
回复 2楼 九转星河
谢谢!!!
2016-11-08 08:58
百里
Rank: 2
等 级:论坛游民
帖 子:34
专家分:66
注 册:2016-10-1
收藏
得分:0 
////////////////////////////////////
感谢观看的各位,这道题基本上已经做出来了,可能还有一些地方可以优化的
。如果大家有好的方案的话可以分享一下哟。&。&
////////////////////////////////////
#include"stdio.h"
#include"ctype.h"
#define N 100
int Inverse(char str1[], char str2[][N]) ;
int main()
{
    char str1[N], str2[N][N];
    int ret, i ;
    printf("Input a sentence:") ;
    gets(str1) ;
    ret = Inverse(str1, str2) ;
    for(i=0 ;i<ret-1 ;i++)
    {
        printf("%s ", str2[i]) ;
    }
    printf("%s",str2[i]) ;
    printf("%c", str2[i+1][0]) ;
    return 0 ;
}
int Inverse(char str1[], char str2[][N])
{
    int i, count = 1, count_pha = 0, k, count_ret ;
    for(i=0 ;str1[i]!='\0' ;i++)
    {
        count_pha++ ;
        if(str1[i]!=' ')
        {
            continue ;
        }
        else
        {
            count++ ;
        }
    }
    count_ret = count ;
    str2[count][0] = str1[count_pha-1] ;//先赋值最后的标点符号。
    for(i=k=0,count-=1 ;str1[i]!='\0' ;i++)
    {
        if((str1[i]!=' '&&isalpha(str1[i]))||str1[i]=='\'')//isalpha()函数是判断字符是否为字母,是的话返回非零值。包含在头文件“ctype.h”中
        {
            str2[count][k] = str1[i] ;
            k++ ;
        }
        else
        {
            str2[count][k] = '\0' ;
            k=0 ;
            count-- ;

        }
    }
    return count_ret ;
}
2016-11-08 11:19
快速回复:颠倒句子中的单词顺序。
数据加载中...
 
   



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

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