精华内容
下载资源
问答
  • 将一句话的单词进行倒置,标点不倒置。 输入描述: 每次测试会输入1个测试用例, 输入用例的长度不超过100 输出描述: 依次输出倒置之后的字符串,以空格分割 eg: 输入:i like beijing 输出:beijing. like i ...

    题目描述:

    将一句话的单词进行倒置,标点不倒置。

    输入描述:

    每次测试会输入1个测试用例, 输入用例的长度不超过100

    输出描述:

    依次输出倒置之后的字符串,以空格分割

    eg:

    输入:i like beijing
    输出:beijing. like i

    解题思路:

    将整句话先逆置一遍,然后在逐个单词进行逆置。

    注意:

    1.把逆置的具体算法单独写出来,这有利于在逆置每个单词或句子都可以复用代码,这样代码逻辑会很清晰;
    2.scanf函数不支持在键盘上读取一段完整的英语句子(因为其碰到空格或‘/0’就会停止读入,因此下文用了gets函数;

    代码实现:

    #include<stdio.h>
    #include<string.h>
    #include<assert.h>
    #include<stdlib.h> 
    void reverse_(char* left, char*right)
    {
     assert(left&&right);
      while(left<right)
         {
            char ret = *left;
            *left=*right;
            *right=ret;
            
             left++;
             right--;
           }
     }
     
    void reverse(char* arr,int len)
    {
      reverse_(arr,arr+len-1);//先把整个句子逆置一遍
       while(*arr)//逆置每个单词
       {
         char* begin = arr;
         while(*arr && (*arr != ' '))//英语中单词的结尾为空格或者‘\0’
           {
              arr++;//用arr记录每个单词的最后一个位置
           }
           reverse_(begin,arr-1);//具体逆置每个单词
         if(*begin == ' ')//逆置一个单词之后 arr指针会走到空格的地方
                          //因此需要下边执行一个++操作
           {
             arr++;
           }
       }
    }
    
    //测试
    int main()
    {
       char arr[100];
       gets(arr);
       int len=strlen(arr);
       reverse(arr,len);
       printf("%s\n",arr);
       system("pause");
      return 0;
     }
    
    展开全文
  • C语言——单词倒置但不改变词序

    千次阅读 2017-10-25 16:47:47
    单词倒置 时限:1000ms 内存限制:10000K 总时限:3000ms 描述:   给一行英文句子,把每个单词倒置,注意:单词的顺序不变。 输入:   一行英文句子,其中只包含大写字母、小写字母和空格。 输出:  ...

    

    单词倒置

    时限:1000ms 内存限制:10000K 总时限:3000ms

    描述:

     

    给一行英文句子,把每个单词倒置,注意:单词的顺序不变。

    输入:

     

    一行英文句子,其中只包含大写字母、小写字母和空格。

    输出:

     

    把每个单词的字母倒置输出。

    输入样例:

     

     

     akhk jrow mfo zj ajp

     

    输出样例:

     

     

     khka worj ofm jz pja

     

     

     

    答案如下:

    #include<stdio.h> #include<string.h>//strlen()的头文件 int main() {  char str1[1000],str2[500];//定义字符串  int i,j=0;  gets(str1);//C语言输入字符串,C++不识别     for(i=0;i<strlen(str1);i++)     {      if(str1[i]!=' ')//空格表示要么‘’,要么32(ascll)      {       str2[j]=str1[i];       j++;      }      if(str1[i]==' '&&str1[i-1]!=' ')      {       for(int k=j-1;k>=0;k--)//倒序输出str2;【吐槽noj.cn】默认输入的英语句子末尾要有空格!!!什么鬼       {        printf("%c",str2[k]);//【敲黑板】C语言输出指定字符串printf("%c",a[i])       }       j=0;      }      if(str1[i]==' ') printf(" ");//【敲黑板】C语言only输出空格是酱紫滴~     }     printf("\n");//【敲黑板】C语言only输出换行  return 0; }

     

    展开全文
  • 单词倒置 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 给一行英文句子,把每个单词倒置,注意:单词的顺序不变。 输入: 一行英文句子,其中只包含大写字母、小写字母和空格。 输出: 把每...

    Problem C

    单词倒置

    时限:1000ms 内存限制:10000K 总时限:3000ms

    描述:

    给一行英文句子,把每个单词倒置,注意:单词的顺序不变。

    输入:

    一行英文句子,其中只包含大写字母、小写字母和空格。

    输出:

    把每个单词的字母倒置输出。

    输入样例:

     akhk jrow mfo zj ajp

    输出样例:

     khka worj ofm jz pja

    #include<stdio.h> #include<string.h> int main() {     int i,j=0,n,k;     char str1[500],str2[500];     gets(str1);     n=strlen(str1);     for(i=0;i<n;i++)     {         if(str1[i]!=' ')//判断是否为空格,若不是,将该处字符储存到字符串数组中         {             str2[j]=str1[i];             j++;          }             if((str1[i]==' '&&str1[i-1]!=' ')||i==n-1)//当该单词结束时,将储存到字符串数组中的单词倒序输出

            {             for(k=j-1;k>=0;k--)             {             printf("%c",str2[k]);             }             j=0;         }             if(str1[i]==' ')//当遇到空格时,照常输出         printf(" ");         if(i==n-1)printf("\n"); //句尾输出换行符     }     return 0; }

    展开全文
  • 单词倒置 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 给一行英文句子,把每个单词倒置,注意:单词的顺序不变。 输入: 一行英文句子,其中只包含大写字母、小写字母和空格。 输出: 把每...

    单词倒置
    时限:1000ms 内存限制:10000K 总时限:3000ms
    描述:
    给一行英文句子,把每个单词倒置,注意:单词的顺序不变。
    输入:
    一行英文句子,其中只包含大写字母、小写字母和空格。
    输出:
    把每个单词的字母倒置输出。
    输入样例:
    akhk jrow mfo zj ajp
    输出样例:
    khka worj ofm jz pja

    #include<stdio.h>
    int main()
    {
        char str[10000],t;
        int i=0,count,k;
        gets(str);
        while(str[i])//大循环,循环到字符串结束 
        {
            count=0;
            while(str[i]!=32&&str[i]!=0)//小循环,在一个单词内循环,记录单词字母个数count和在字符串中位置i 
            {
                i++;//比一个单词中最后一个字母的a[m]中的m要大一,所以第24行要减1;防止第26行的1多加。 
                count++; 
            }
            if(count==1) continue;//当单词只有一个字母时直接退出循环 
            if(count>1)//调换字母位置 
            {
                for(k=1;k<=count/2;k++)//只能调换字母个数一半的次数,否则相当于没有调换,一些字母会被调回原状。 
                {
                    t=str[i-k];
                    str[i-k]=str[i-count+k-1];
                    str[i-count+k-1]=t;
                }
                i=i-1; 
            }
            i++;
        }
        puts(str);
    } 
    展开全文
  • 将字符串里词顺序倒置,如"Times New Roman"变为"Roman New Times"。以空格为分隔符。还比如把"Welcome to India" 变成"India to Welcome"/*思路:比如把hello world反转,做法是先把它整体反转,然后在一个单词一个...
  • 单词倒置

    2017-10-19 15:06:24
    单词倒置 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 给一行英文句子,把每个单词倒置,注意:单词的顺序不变。 输入: 一行英文句子,其中只包含大写字母、小写字母和空格。 ...
  • C语言实现单词位置倒置,不改变单词结构 #include <stdio.h> #include <string.h> char * fun(char *str)//翻转单个单词 { char *ptr, *qtr; char tmp; qtr = str; while(*str != ' ') { str++...
  • C语言分离单词问题(倒置

    千次阅读 2017-10-21 08:06:07
    分离单词 Time Limit: 3000ms, Memory Limit: 10000KB , Accepted: 2473, Total Submissions: 4866 Description 编写程序以字符串为单位,以空格或标点符号(字符串中仅含英文逗号','或小数点'.'作为标点符号)...
  • 用C++语言实现,将一句话中的单词进行倒置(单词之间倒转,单词本身不倒置),标点符号不导致。比如一句话“I come from tianjin. “,倒置后变成“tianjin. from come I ”。C常见的库函数有:复制代码 代码如下:int ...
  • 题目链接 给定一个字符串,逐个翻转字符串中的每个单词。 示例: 输入: “the sky is blue”, 输出: “blue is sky the”. 说明: ...进阶: 请选用C语言的用户尝试使用 O(1) 空间复杂度的原地解法。 ...
  • 将一句话的单词进行倒置,标点符号不倒置。 输入示例 每次输入一个测试用例,输入长度不超过100 I love you. 输出实例 依次输出倒置后的字符串,以空格分割 you. love I #include<stdio.h> #include<...
  • 将字符串里词顺序倒置,如"Times New Roman"变为"Roman New Times"。以空格为分隔符。 还比如把"Welcome to India" 变成"India to Welcome" /* 思路: 比如把hello world反转,做法是先把它整体反转,然后...
  • 将一句话里面的单词进行倒置,标点符号不倒换 如“i love you.”,倒换后"you. love i" #include <string.h> #include <stdio.h> #include <stdlib.h> void reverse(char *str) { int i=0,j=...
  • 题目: 编写一个C函数,将”you are come from shanghai ”倒置为”shanghai from come are you”,及将句子中的单词位置倒置,而不改变单词内部结构
  • if ((*p == '\0') || (*p == ' '))//先找到单独的单词,然后把它们start位置指向的和end位置指向的交换 { end = p - 1; while (end > start) { swap(start++, end--); } start = p + 1; ...
  • #include #include #define MAX_SIZE 1024 void reverse_string(char *s1, int len) {  int i;  char temp;  for(i = 0; i  {  temp = *(s1 + i);... *(s1 + i) = *(s1 + len - 1 - i
  • 倒置字符串 将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I 解题思路: 先将字符串整体逆置,然后再逆置以空格分隔的单词,这样就可以达到我们想要的效果。 例如: ...
  • 前后颠倒输入的英文中的单词位置,标点符号(只可以出现在句尾)位置不变,如输入"my name is gu hu!"输出应该为"hu gu is name my!"。
  • 将一句话的单词进行倒置,标点不倒置。 #include<stdio.h> #include<string.h> //逆序字符串函数 void reverse(char* left, char* right) { while (left < right) { char temp = *left; *...
  • 将一句话中的单词进行倒置单词之间倒转,单词本身不倒置),标点符号不倒置。 比如一句话“I come from China. “,倒置后变成“China. from come I”。 C++的参考代码如下: #include #include #include #...
  • C语言字符串单词倒序

    千次阅读 2017-04-22 23:40:11
    题目要求:输入若干个单词,每个单词之间用空格分割,要求将每个单词中的字母倒序输出。 示例输入:abc def ghijkl 示例输出:cba fed lkjihg C语言程序如下: #include #include #include /*函数:inverse ...
  • C语言(37)倒置字符串

    千次阅读 2018-04-04 16:00:15
    将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I 输入描述: 每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100 输出描述: 依次输出倒置之后...
  • 单词的整体倒置

    2017-08-17 18:30:23
    例如: 原顺序: Mike Shinoda, Rob Bourdon, and ...单词交换: Delson. Brad and Bourdon, Rob Shinoda, Mike #include #include int main() { char p[] = "Mike Shinoda, Rob Bourdon, and Brad Delson.";
  • 倒置单词的小程序

    2016-12-02 22:54:17
    编写一个C函数,将“i am from shanghai"倒置为“shanghai from am i",及将句子中的单词位置倒置,而不改变单词内部结构。 #include #include #define MAX_SIZE 1024 void reverse_string(char *s1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 652
精华内容 260
关键字:

单词倒置c语言

c语言 订阅