| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2522 人关注过本帖
标题:怎样用C语言将“my name is xiao hua ”中的单词进行倒排
只看楼主 加入收藏
w19890717
Rank: 1
等 级:新手上路
帖 子:21
专家分:5
注 册:2011-4-9
收藏
 问题点数:0 回复次数:21 
怎样用C语言将“my name is xiao hua ”中的单词进行倒排
怎样用C语言将“my name is xiao hua ”中的单词进行倒排
搜索更多相关主题的帖子: C语言 xiao 
2011-04-09 16:03
heimodao
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:172
注 册:2011-4-8
收藏
得分:0 
用数组行不行,还是说输入什么就倒排什么吗?
2011-04-09 16:38
水晰
Rank: 3Rank: 3
来 自:新疆
等 级:论坛游侠
帖 子:39
专家分:113
注 册:2011-4-6
收藏
得分:0 
回复 楼主 w19890717
#include <stdio.h>
#include <string.h>
void main()
{
 char a[]={"my name is xiao hua"};
 int n,tem,j;
 n=strlen(a);//算出数组a的长度.
 
 for(j=0;j<(int)(n/2);j++)//倒序交换.
    {
     tem=a[j];
     a[j]=a[n-j-1];
         a[n-j-1]=tem;
     
    }
 for(j=0;j<n;j++)
     printf(" %c",a[j]);
 printf("\n");
}
 测试成功 .
2011-04-09 16:53
菜鸟auto
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:100
注 册:2010-7-23
收藏
得分:0 
//输入一字符串 逆序输出
#include<stdio.h>
#include<string.h>
#define N 50

int main(void)
{
    char a[N];
        int i;

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

    gets(a);
   
    i=strlen(a);
   
    printf(" the reverse order string:\n");

    for(i=i-1;i>=0;i--)
    {
        printf("%c",a[i]);
    }

    getchar();
    return 0;
}
2011-04-09 16:56
w19890717
Rank: 1
等 级:新手上路
帖 子:21
专家分:5
注 册:2011-4-9
收藏
得分:0 
回复 2楼 heimodao
可以
2011-04-09 16:56
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:0 
没什么意思 很烦
2011-04-09 16:57
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
看清题呀。人家要的是其中的单词逆序,二不是整个句子。
2011-04-09 17:50
hnuhsg1226
Rank: 9Rank: 9Rank: 9
来 自:中国
等 级:蜘蛛侠
威 望:2
帖 子:314
专家分:1314
注 册:2011-3-27
收藏
得分:0 
呵呵,是啊,是单词倒排,先要判断单词再逆序

我的地盘
2011-04-09 18:07
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
//怎样用C语言将“my name is xiao hua ”中的单词进行倒排
#include "stdio.h"
void main()
{
    char s[80];   
    int i,j,k,t;

    printf("Enter a string:\n");
    gets(s);

    i=j=k=0;
    while(s[k])
    {   
        while( s[k] && s[k]==' ' )k++;   //跳过空格,i指向单词的第一个字符
        i=k;
        while( s[k] && s[k]!=' ' )k++;    //跳过非空格字符,j指向单词的最后一个字符
        j=k;
        j--;
        for(;i<j;i++,j--)  //逆序单词   
        {
            t=s[i];s[i]=s[j];s[j]=t;
        }
    }

    printf("%s\n",s);  
}

2011-04-09 20:24
catbear
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2011-3-28
收藏
得分:0 
#include <stdio.h>
#include <string.h>

void copy(char *words, char *p, int length);
void main()
{
    char *sentence;
    char *reverseSentence;
    char *ptr;
    int position[100];
    int number = 0;  //空格数
    int i=0, j=0;
    int currentLength = 0;
    int wordLength=0;

    sentence = "my name is xiao hua";
    ptr = sentence;
    position[0] = 0;


    while(*ptr != '\0')
    {
        if(*ptr++ == ' ')
        {
            position[number+1] = (ptr-1)-sentence;
            number++;
        }
    }

    ptr = ptr - 1;

    for(i=0,j=number; i<=number,j>=0; i++,j--)
    {
        if(j ==0 )
        {
            wordLength = ptr-(sentence+position[j]) + 1;
            copy(reverseSentence+currentLength, sentence+position[j], wordLength);
        }
        else
        {
            wordLength = ptr-(sentence+position[j]);
            copy(reverseSentence+currentLength, sentence+position[j]+1, wordLength);
        }

        currentLength += wordLength+1;
        ptr = sentence + position[j]-1;

    }

    printf("%s", reverseSentence);

}

void copy(char *words, char *p, int length)
{
    int count = 0;

    while(count < length)
    {
        *words = *p;
        words = words +1;
        p = p+1;
        count++;
    }
    *words = ' ';
}
2011-04-09 21:12
快速回复:怎样用C语言将“my name is xiao hua ”中的单词进行倒排
数据加载中...
 
   



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

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