• 单词翻转


    Description

    输入一个句子(一行),将句子中的每一个单词翻转后输出

    Input

    输入有多行,每行不超过500个字符。单词之间以空格、逗号、双引号、分号、句号隔开。

    Output

    翻转每一个单词后的字符串

    Sample Input

    hello world
    ab cd ef

    Sample Output

    olleh dlrow 
    ba dc fe 

    HINT


    //自己的代码

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	char a[1000],d[100][100],w;
    	int i,m,n,t,j;
    	while(gets(a))
    	{
    		m=0;
    		n=0;
    	    for(i=0;a[i];i++)
    		{
    			if(a[i]==' '||a[i]==','||a[i]=='.'||a[i]=='""'||a[i]==';')
    			{
    				d[m][n++]='';
    				m++;
    				n=0;
    			}
    			else
    				d[m][n++]=a[i];
    		}
    	    d[m++][n]='';
    		for(i=0;i<m;i++)
    		{
    		   t=strlen(d[i]);
    		   if(t==0)
    			   continue;//必须有否则出现Presentation Error,会出现多余的空格
    		   for(j=0;j<t/2;j++)
    		   {
    			   w=d[i][j];
    			   d[i][j]=d[i][t-1-j] ;
    			   d[i][t-1-j]=w;
    		   }
    		   printf("%s ",d[i]);
    		}
    		printf("
    ");
    	}
    	return 0;
    }


    首先介绍一下reverse()函数

    reverse函数的作用是:反转一个容器内元素的顺序。函数参数:reverse(first,last);//first为容器的首迭代器,last为容器的末迭代器。它没有任何返回值

    这个函数比较简单,看一个例题:输入一个字符串,输出反转后的字符串。
    直接调用函数。
    代码:
    #include <iostream>
    #include <algorithm>
    #include <string>
    using namespace std;
    int main()
    {
        string str;
        cin>>str;
        reverse(str.begin(),str.end());
        cout<<str<<endl;
        return 0;
    }

    //其他方法
    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<string>
    #include<algorithm>
    using namespace std ;
    int main()  {
        char s[1000] ;
        while(gets(s))  
    	{
            string str[500] ;
            char *p = NULL ;
            int count = 0  ;
            for(p = strtok(s," ",;.") ; p ; p = strtok(NULL," ",;."))//单词之间以空格、逗号、双引号(")、分号、句号隔开。
                str[count++] = p ;//将每个单词存放到字符串数组str中
            for(int i = 0 ; i < count ; i++)    
    		{
                reverse(str[i].begin(),str[i].end()) ;//反转
                cout << str[i] << " " ;
            }
            cout << endl ;
        }
        return 0 ;
    }

  • 相关阅读:
    activity 背景透明
    win系统注册缺少的库 32位系统 64位系统
    android 窗
    wireshark抓包分析
    juqery select 标签
    IOS开发应用之Quartz 2D学习指南
    为什么你总会觉得自己的产品不够好
    日志宝
    Android之Inflate()方法用途+setContentView和inflate区别
    Ralasafe
  • 原文地址:https://www.cnblogs.com/NYNU-ACM/p/4237327.html
Copyright © 2020-2023  润新知