杭电1062-字符串翻转

这是天津大学2015考研的编程题

Problem Description

Ignatius likes to write words in reverse way. Given a single line of text which is written by Ignatius, you should reverse all the words and then output them.

Input

The
input contains several test cases. The first line of the input is a
single integer T which is the number of test cases. T test cases follow.
Each test case contains a single line with several words. There will be at most 1000 characters in a line.

Output

For each test case, you should output the text which is processed.

Sample Input

3
olleh !dlrow

m‘I morf .udh

I ekil .mca

Sample Output

hello world!

I‘m from hdu.

I like acm.

Hint

Remember to use getchar() to read ‘\n‘ after the interger T, then you may use gets() to read a line and process it.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
    char c,buffer[1001];
    char* text_end;//每段字符串的结束地址
    char* text_begin;//每段字符串的开始地址
    int i=0,j=0;
    int cnt;
    char  temp;
 
    scanf("%d",&cnt);
    while(getchar()!=‘\n‘);//输入case数目的时候错了,你只读最后一个字符。。13你会读成3。。
    while(i<cnt)
    {
        gets(buffer);
        strcat(buffer," \0");//为了方便输出,将输入的字符添加空格和字符串结束符
        text_begin=&buffer[0];//初始化第一段字符串的起始地址
        for(j=0; j<strlen(buffer); j++)
        {
            if(buffer[j]==‘ ‘)//遇到空格时,将字符串翻转
            {
                text_end=&buffer[j-1];//字符串的结束地址
                while(text_begin<text_end)//字符串翻转
                {
                    temp=*text_begin;
                    *text_begin=*text_end;
                    *text_end=temp;
                    text_begin++;
                    if(text_begin==text_end) break;
                    text_end--;
                }
                text_begin=&buffer[j+1];//每段字符串结束重置开始地址
            }
        }
        buffer[strlen(buffer)-1]=‘\0‘;//删除结尾字符串的空格字符
        printf("%s\n",buffer);
        i++;
    }
    return 0;
}

时间: 2024-10-04 20:46:14

杭电1062-字符串翻转的相关文章

杭电 -- 1062 解法一

#include<stdio.h> #include<malloc.h> #define MaxSize 100 typedef struct{ char arr[MaxSize]; int top; }Stack; void InitStack(Stack *&s){ s = (Stack *)malloc(sizeof(Stack)); s->top = -1; } void DestroyStack(Stack *&s){ free(s); } void

魔咒词典------HDOJ杭电1880(字符串的处理,很简单)

Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词典.当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能:当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒.如果他要的魔咒不在词典中,就输出"what?" Input 首先列出词典中不超过100000条不同的魔咒词条,每条格式

A + B------HDOJ杭电1228(读取字符串练基础)

Problem Description 读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出. Input 测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出. Output 对每个测试用例输出1行,即A+B的值. Sample Input one + two = three four + five six = zero seven + eig

字符串统计(杭电2017)

/*字符串统计 Problem Description 对于给定的一个字符串,统计其中数字字符出现的次数. Input 输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串. Output 对于每个测试实例,输出该串中数值的个数,每个输出占一行. Sample Input 2 asdfasdf123123asdfasdf asdf111111111asdfasdfasdf Sample Output 6 9 */ #include<cstdi

杭电2005(第几天?)java字符串水过

点击打开杭电2005 1.split的应用:将字符串以某某字符为界划分为多个字符串 2.面向对象的编程 Problem Description 给定一个日期,输出这个日期是该年的第几天. Input 输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的. Output 对于每组输入数据,输出一行,表示该日期是该年的第几天. Sample Input 1985/1/20 2006/3/12 Sample Out

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

杭电ACM题目分类

杭电ACM题目分类 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028. 1029.1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092. 1093.1094.1095.1096.1097.1098.1106.1108.1157.1163.1164.1170.1194.1196. 1197.1201.1202.1205.1219.1234.123

【转】对于杭电OJ题目的分类

[好像博客园不能直接转载,所以我复制过来了..] 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDI

The Hardest Problem Ever(杭电1048)

/*The Hardest Problem Ever Problem Description Julius Caesar lived in a time of danger and intrigue. The hardest situation Caesar ever faced was keeping himself alive. In order for him to survive, he decided to create one of the first ciphers. This c