| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2945 人关注过本帖
标题:实现英文短语的换序!
只看楼主 加入收藏
shade1220
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2008-8-5
收藏
 问题点数:0 回复次数:17 
实现英文短语的换序!
如This is my book用程序换为book my is This
求教
搜索更多相关主题的帖子: 短语 英文 
2008-09-09 12:44
heartstring
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-9-9
收藏
得分:0 
试试strock函数
2008-09-09 12:48
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
#include <string.h>
#include <stdio.h>
sort(char *book[],int num)
{
  int j;
  char *temp;
  for(j=0;j<num/2;j++)
  {
   
    temp=book[num-j-1];
    book[num-j-1]=book[j];
    book[j]=temp;
      
  }
}

int main(void)
{
  int i;
  static char *book[]={"This","is","my","book",};
  sort(book,4);
  for(i=0;i<4;i++)
  {
    printf("%s  ",book[i]);
  }
}

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-09-09 13:28
shade1220
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2008-8-5
收藏
得分:0 
#include<stdio.h>
#include<string.h>
int main()
{
    char des[300];
    char src[][10]={
                    "Hello",
                    "betty",
                    "haha"
                    };
    
    int j=0;
    scanf("%s",des);
    for (int i=0;i<strlen(des);i++)
    {if(des[i]!=' ')
            src[j][i]=des[i];
    else j++;}
for( int i=sizeof(src)/sizeof(src[0]);i>=0;i--)
    printf("%s",src[i]);
    getchar();
    return 0;
}
我这样写程序运行不起来?

踏踏实实学习,认认真真编程
2008-09-09 13:32
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
收藏
得分:0 
#include <stdio.h>
#include <string.h>

char sword[128][256];

int getWords(char *str)
{
    int i = 0;
    char *p;

    for(;;)
    {
        if(0 == i)
            p = strtok(str, " ");
        else
            p = strtok(NULL, " ");
        if(NULL == p)
            break;
        strcpy(sword[i], p);
        i ++;
    }
    return i;
}

int sortWords(int num)
{
    int i = 0, j = 0;
    char strtmp[256];

    for(i = 0; i < num - 1; i++)
    {
        for(j = i + 1; j < num; j ++)
        {
            if(stricmp(sword[i], sword[j]) > 0)
            {
                memset(strtmp, 0x00, sizeof(strtmp));

                strcpy(strtmp, sword[i]);
                strcpy(sword[i], sword[j]);
                strcpy(sword[j], strtmp);
            }
        }
    }
    return 0;
}


int main(int argc, char *argv[])
{
    int i = 0, iNum = 0;
    char sbuf[2048+1];


    memset(sbuf, 0x00, sizeof(sbuf));

    printf("Please Enter your string: ");
    gets(sbuf);

    iNum = getWords(sbuf);

    sortWords(iNum);

    for(i = 0; i < iNum; i++)
    {
        printf("%s ", sword[i]);
    }
    printf("\n");

    return 0;
}

只有想不到,没有做不到
2008-09-10 16:35
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
收藏
得分:0 
如故你确定每2个单词之间只有一个空格的话,很容易搞定

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-09-10 20:02
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
说一下个人思路:头文件中需包含ctype.h
1.输入部分:读入语句sentence到一个字符数组
2.定义一个字符指针p,并移动其指向字符数组的结尾('\0')
3.循环使p--,指向遇到的第一个字母字符处(用isalpha()判断),
继续循环使p--,until遇到下一个非字母字符 or 空格,以此断词,并将得到的词存入动态字符数组。

重复3,直至p指向sentence头部。
4.输出动态字符数组中的内容,以空格间隔。
2008-09-10 20:32
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
#include<string.h>
#include<stdio.h>
void swap(char str[]);
int main(void)
{    
    char str[] = "This is my book";
    swap(str);
    puts(str);
    return 0;
}
void swap(char str[])
{
    int i,j=0,k=0;
    char swap[4][15];
    char (*p)[15];
    char temp[15];
    p = swap;
    for(i = 0;i<(int)strlen(str);i++)
    {
        if(str[i] != ' ')
        {
            temp[k] = str[i];
            k++;
        }
        else if(str[i]== ' ')
        {   
            temp[k]='\0';
            strcpy(*(p+j),temp);            
            j++;
            temp[0]='\0';
            k=0;
        }    
    }
    temp[k]='\0';
    strcpy(*(p+j),temp);
    k--;
    for(i=0;i<2;i++,k--)
    {
        strcpy(temp,*(p+i));
        strcpy(*(p+i),*(p+k));
        strcpy(*(p+k),temp);    
    }
    str[0]='\0';
    k=0;
    for(i=0;i<4;i++)
    {
        strcat(str,*(p+i));
        if(i < 3)
        strcat(str," ");    
    }
}
2008-09-11 00:50
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
回复 8# xianshizhe111 的帖子
很高兴又见到您。
2008-09-11 01:44
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
回复 8# xianshizhe111 的帖子
效率真低……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-11 01:56
快速回复:实现英文短语的换序!
数据加载中...
 
   



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

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