关于字符串逆置的问题

问题描述

#include"iostream.h"#include"string.h"#include"stdio.h"intmain(){charline[1000];intn,m;//n数据块个数,m数据块中测试的cin>>n;cout<<endl;while(n--){cin>>m;cout<<endl;while(m--){gets(line);intlen=strlen(line);intj=0;for(inti=0;i<len;i++){j=i+1;while(j<len&&line[j]!=''){j++;}for(intk=0;k<(j-i)/2;k++){charc=line[i+k];line[i+k]=line[j-k-1];line[j-k-1]=c;}i=j;}puts(line);}}return0;}

解决方案

解决方案二:
那个for(intk=0;k<(j-i)/2;k++){charc=line[i+k];line[i+k]=line[j-k-1];line[j-k-1]=c;}i=j;这段代码没明白,是怎样将字符串逆置的……假设输入practice,我感觉应该是rpcaitec啊,怎么回事ecitcarp呢,求解
解决方案三:
你要的好像不是逆序结果。而是两个两个的交换一下?

时间: 2024-10-25 08:54:05

关于字符串逆置的问题的相关文章

c++ 数据结构-字符串逆置问题,数据结构(C++)

问题描述 字符串逆置问题,数据结构(C++) #include#includeusing namespace std; typedef struct chunk{ char ch; struct chunk *next;};typedef struct LString{ chunk *head*tail; int curlen;}; //创建串的函数string CreateString(LString &S){ cout<<""请输入串:""&

c语言实现字符串逆序

面试经常会遇到的题,C语言实现字符串逆序.如输入"abcd",输出"dcba". 最近自己整理了一下,下面代码已经过测试. #define Max 200 main() { char str[Max]; printf("请输入字符串:"); gets(str); int len=0; char *strlen=str; char *left=str; char temp; while(*strlen++)len++; strlen-=2;//这里

TZC 1472 逆置正整数,去前导零 (java一句话秒杀)

逆置正整数 http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1472 时间限制(普通/Java):1000MS/10000MS 运行内存限制:65536KByte 描述 输入一个三位正整数,将它反向输出. 输入 3位正整数 输出 输出逆置后的正整数(去除前导0) 样例输入 123 样例输出 321 提示 注意: 130逆置后是31 完整代码: /*328ms,567KB*/ import java.u

课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以&amp;amp;#39;\0&amp;amp;#39;结尾。

问题描述 课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以''结尾. 课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以''结尾. 解决方案 void foo(char * s) { if (!s) return; foo(s + 1); printf("%c", *s); } 解决方案二: void function(char *p) { if(*p=='/0') return ; function(p+1); printf("%c&q

字符串逆序输出

字符串逆序输出 时间限制:3000 ms  |  内存限制:65535 KB 难度:0 描述 给定一行字符,逆序输出此行(空格.数字不输出) 输入 第一行是一个整数N(N<10)表示测试数据的组数) 每组测试数据占一行,每行数据中间有且只有一个空格(这样你可以把此行当成两个字符串读取). 每行字符长度不超过40 并且保证输入的字符只有空格(1个),数字,小写字母三种 输出 对应每行测试数据,逆序输出(空格和数字不输出) 样例输入 3 abc 123de abc 123 abc d 样例输出 ed

单链表(二):如何实现单链表的排序、逆置(逆序)

1.单链表的排序 示例代码如下: #include<iostream> using namespace std; ///单链表结构体:结点 typedef struct student { int data; //结点中的数据 struct student *next; //指向链表下一个结点的指针 }node; node *head; //头结点指针 int index; //链表长度 ///建立单链表 void *create() { node *p,*s; //增加结点的位置指针.要增加

顺序表应用4:元素位置互换之逆置算法

顺序表应用4:元素位置互换之逆置算法 Time Limit: 10MS Memory Limit: 570KB Problem Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),设计一个时间复杂度为O(N).空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段. 注意:先将顺序表元

数据结构实践——单链表:逆置、连接与递增判断

本文针对数据结构基础系列网络课程(2):线性表的实践项目. [项目 - 单链表算法](程序中利用了已经实现的单链表算法,头文件LinkList.h及其中函数的实现见单链表算法库) 1.设计一个算法,将一个带头结点的数据域依次为a1,a2,-,an(n≥3)的单链表的所有结点逆置,即第一个结点的数据域变为an,-,最后一个结点的数据域为a1.实现这个算法,并完成测试. [参考解答] (程序中利用了已经实现的单链表算法,头文件LinkList.h及其中函数的实现见单链表算法库) #include <

顺序表应用4-2:元素位置互换之逆置算法(数据改进)

顺序表应用4-2:元素位置互换之逆置算法(数据改进) Time Limit: 80MS Memory Limit: 600KB Problem Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),设计一个时间复杂度为O(N).空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段. 注