字符串转置

/*************************************************************************
    > File Name: revert.c
    > Created Time: 2014年06月07日 星期六 22时39分21秒
 ************************************************************************/

#include<stdio.h>
#include<string.h>
//基于字符数组的转置
void revert(char *str)
{
    printf("method reverse\n");
    int length = strlen(str);
    char tem;
    int i;
    for(i = 0; i < length/2; i++)
    {
        tem =  str[i];
        str[i] =  str[length-i-1];
        str[length-i-1] = tem;
    }
}
//基于c指针的转置
void revert1(char *str)
{
    printf("method revers1:\n");
    int length = strlen(str);
    char tem;
    int i;
    for(i = 0; i<length/2; i++)
    {
        tem = *(str+i);
        *(str+i) =  *(str+length-i-1);
        *(str+length-i-1) = tem;
    }
}
//纯c语言实现,不含任何库函数
void revert2(char *str)
{
    printf("mehtod revert2\n");

    int len = 0;
    while(*(str+len) != ‘\0‘)len++;
    char *start = str;
    char *end = str+len-1;
    int size = len/2,i=0;
    while(++i<=size)
    {
        char tem = *end;
        *end = *start;
        *start = tem;
        start++;
        end--;
    }
    //printf("%s\n",str);
}

int main()
{
    char str[100];
    printf("请输入一个字符串:\n");
    scanf("%s",str);
    revert(str);
    printf("字符串转置后:\n");
    printf("%s\n",str);
    revert1(str);
    printf("字符串转置后:\n");
    printf("%s\n",str);
    revert2(str);
    printf("字符串转置后:\n");
    printf("%s\n",str);
    return 0;
}

字符串转置,布布扣,bubuko.com

时间: 2024-10-29 02:52:52

字符串转置的相关文章

c 转置字符串You are a so cheap man -&gt;man cheap so a are You

解题思路: 1.将字符串转置 2.对转置后的字符串中单词转置 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<stdbool.h> 5 //字符串转置 6 void tranStr(const char *p,char *s) 7 { 8 int len = strlen(p); 9 int i,j; 10 for(i=len,j=0; i>=0,j<

翻转单词顺序序列

题目:"student. a am I"-->"I am a student" 思路:方法一是先将整个字符串转置,然后再把每个单词转置..方法二...分割成字符串数组,从尾到头添加每个单词,,但是这样会有额外空间... public String ReverseSentence(String str) { if(str==null)return null; if(str.trim().equals("")) return str; Stri

hdu_1282 回文数猜想

(最近水题刷的比较多,不过还是有些收获,所以还是做个记录比较好) http://acm.hdu.edu.cn/showproblem.php?pid=1282 分析: 题目理解起来还是简单的,基本上有两种思路:1) 将int转为string来实现: 2)直接用int做(回文串判断,相加) 第二中思路比较直接,将一个数倒置得到新的数,然后判断是否是回文数(两个数值相等):不过鄙人采用了第一种方法,因为字符串的操作不太熟练,需要联系来着. 字符串操作: string -->  int int a;

转置字符串,其中单词内的字符需要正常

如题:转置一个字符串,需要其中的单词正常 例如: Given s = "the sky is blue",return "blue is sky the". 需要说明的是: 1.输入字符串可能会出现:前导空格,后置空格,要求输出的不能有前导空格和后置空格. 2.输入的语句中可能有两个单词之间出现多个空格,输出两个单词之间只能由一个空格. #include <iostream> #include <string> using namespace

python内置的一个好玩的函数-zip,并且巧妙的实现按概率随机生成有限个数的字符串。

python有一个比较有意思的内置函数-----zip,可以把传入的两组list进行一个组合变形,再输出子元素为tuple的list,不过变形的方式比较抽象. 举个例子: A=[1,2,3,4,5,6] B=['a','b','c','d'] v1=zip(A,B) v1的结果为: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')] 比较直观的理解就是,A和B是两道拉链上的扣子,生成的list的子tuple,每一组tuple就是一对扣好了的扣子,并且从每组list的

Excel 行列转置 解决竖向拉,字母跟着递增的问题

今天工作中遇到需要将Excel行列转置涉及到的数据单元格一共几千个 查询网上说可以通过复制粘贴单元格,粘贴选项中转置一项实现,但是所涉及的sheet页中,数据格式和单元格格式各不一样,转置失败! 怎么做呢? 先看看查询Excel函数的结果: 首先看看INDERECT函数的定义:返回字符串所指定的索引 比如: 有了这个函数,解决当前问题的思路就是在竖向拖动的时候,能对应到INDIRECT("A1"),INDIRECT("B1"),INDIRECT("C1&q

笔记(用Python做些事情)--变量(数字、字符串)

Python是动态类型,可以用type()查看类型: Python一切皆对象(对象是类的实例化,三个主要概念封装,继承,多态): //:整除符号: decimal类型:高精度的数字类型,但效率不高: 数字类型常用的函数:import math math.pi:π math.sqrt(80):开平方根 math.log10(2**1000):log以10为底 math.pow(x,y):x的y次方 math.factoria(x):阶乘 数字类型常用的函数:import random random

JasperReport报表开发之转置交叉表

使用Jasper或BIRT等报表工具时,常会碰到一些非常规的统计,用报表工具本身或SQL都难以处理,比如源数据不符合交叉表的要求,需要转置后再呈现.集算器具有结构化强计算引擎,集成简单,可以协助报表工具方便地实现此类需求.下面通过一个例子来说明转置交叉表的实现过程. 数据库表booking汇总着各年度商品的预定数据,有四个字段,包括年份和三种预定状态,部分数据如下: 报表要求呈现指定年份及上一年的预定情况,其中行组有三项,即三种预定状态,列组是年份,测度是当年的预定数据.此外要汇总出指定年份各预

字符串(1)---KMP &amp; 扩展KMP &amp; Manacher

练习:点击打开链接 字符串也是ACM中的重头戏,基本内容有KMP ,扩展KMP, Manacher ,AC自动机,后缀数组,后缀自动机.按照专题来做共分三部分. LCS LIS LCIS不知道算不算....点击打开链接 小技巧:匹配问题不区分大小写,则将其全部转为小写. 暴力匹配: 用strstr函数就能解决       I M N Z(枚举长度 三份) 一.KMP算法 解决单一模式串匹配问题. 利用失配后的nxt数组减少移位,达到O(n)级别.资料自行百度. 延展: 1.求最小循环节 点击打开