逆转c字符串

题目:

  1. Write code to reverse a C-Style String (C-String means that “abcd” is represented as five characters, including the null character )

参考解法:把数组的思维去除,用指针的哨兵来做会更简单一点。

第一遍解:

遍历字符串得出长度后,然后首尾互换。

//
//  main.cpp
//  reverse
//
//  Created by lexnewgate on 15/11/6.
//  Copyright © 2015年 lexnewgate. All rights reserved.
//

#include <iostream>
#include <vector>

void reverseStr(char*str)
{
    int i=0;
    for (i=0; *(str+i)!=‘\0‘; i++) {

    }
    for (int j=0; j<i/2; j++) {
        char temp=*(str+j);
        *(str+j)=*(str+i-j-1);
        *(str+i-j-1)=temp;
    }
    return ;
}

int main(int argc, const char * argv[]) {

    char p[]="abcdcxdswsw";
    reverseStr(p);
    printf("%s\n",p);

    return 0;
}
时间: 2024-08-28 07:41:05

逆转c字符串的相关文章

逆转字符串——输入一个字符串,将其逆转并输出。

首先这里的问题在于如何使用逆转的字符串,这里有很多实现的方法: 1,使用数组进行逆转. #include <iostream> #include <string> using namespace std; int main(int argc, char const *argv[]) { string s; cin>>s; for (int i = s.size()-1; i >= 0; --i) { cout<<s[i]; } cout<<

Java:集合框架的工具类

集合框架的工具类 Arrays:里面都是静态方法,直接用来对各种集合进行操作的公有方法. Collections:里面都是静态方法,直接用来对各种集合进行操作的公有方法. 包括: 1.asList将数组变成list集合: static <T> List<T> asList(T... a) 返回一个受指定数组支持的固定大小的列表. //例子1: import java.util.*; class ArraysTest { public static void sop(Object o

十八年开发经验分享(07)递归程序设计

这篇谈谈递归程序设计的问题.从取名上来说是想刻意区别内容的侧重点不同.上一篇是构造,其重点是从递归程序的自身结构出发,试图用一种比较直观的方法来完成递归程序的构造.这篇的重点是设计,其中的区别在于,这次是从问题本身的结构出发来完成递归程序的开发任务.上一篇中介绍的方法,比较简单直观,八股文的意味非常浓郁,并且还有一个比较大的缺点,那就是在实际使用时往往会受制与方法本身而不能解决有一定难度的问题.实际上递归是一种客观存在的现象,递归的描述问题是对客观世界的一种认识.本文从对问题的认识,描述和分析这

hadoop压缩框架

一般来说,计算机处理的数据都存在一些冗余度,同时数据中间,尤其是相邻数据间存在着相关性,所以可以通过一些有别于原始编码的特殊编码方式来保存数据,使数据占用的存储空间比较小,这个过程一般叫压缩.和压缩对应的概念是解压缩,就是将被压缩的数据从特殊编码方式还原为原始数据的过程. 压缩广泛应用于海量数据处理中,对数据文件进行压缩,可以有效减少存储文件所需的空间,并加快数据在网络上或者到磁盘上的传输速度.在Hadoop中,压缩应用于文件存储.Map阶段到Reduce阶段的数据交换(需要打开相关的选项)等情

lua 5.1语法约定

Lua 5.1参考手册 由罗伯特·Ierusalimschy路易斯Henrique de Figueiredo沃尔德蔡氏 ?一个版权?2006 A¢A€"2012 Lua.org,银行业者.免费的根据Lua许可证. 内容一个?·指数一个?·其他版本一个?·英语一个?·portuguA?Aa年代一个?·espaA?A±ol 1 A¢A€"介绍 Lua是一个扩展编程语言设计的支持一般过程式编程与数据描述设施.它还提供了很好的支持面向对象编程,函数式编程,数据驱动的编程.Lua是打算作为一个

一天三题LeetCode(C++&amp;JAVA)-4~6

转载请注明出处: http://blog.csdn.net/miaoyunzexiaobao 4.     Median ofTwo Numbers https://leetcode.com/problems/median-of-two-sorted-arrays/ 给定两个有序数组A(长度为m)和B(长度为n),找到两个数组的中位数.若两个数组长度和为偶数,则返回中间两个数的平均值.例:A={1,5,14},B={3,7,30},则返回(5+7)/2=6.A={1,5,14},B={3,7},

字符串逆转-压缩连续空格

一.算法描述 给定一个字符串,对于字符串包括多个连续空格的情况,压缩并只保留一个空格,同时以空格隔离的子串逆转. 二.算法思路 其本质是字符串逆转的变体,即在字符串逆转的基础上,还要压缩多余空格,这种情况相比单纯的字符串逆转多了一步判断连续空格的条件 如下代码中,包括单纯的字符串逆转函数,实现比较简单,主要是注意下标的位置 三.算法代码 #include <iostream> #include <string.h> #include <stdio.h> #include

逆转字符串

题目:输入一个字符串,逆序输出 ----------------------------------我是优美的分割线---------------------------------- java语言 public class 逆转字符串 { public static void main(String[] args) { // 测试字符串 String str = "asdfghj"; // 字符串转化成字符 char[] strToChar = str.toCharArray();

50.编写程序,逆转字符串

?//1.运用到strlen函数取得输入字符串的长度 //2.输出时注意数组下标 #include<iostream> #include<string.h> using namespace std; int main() { int temp; char a[20]; cout<<"please input a string:"<<endl; cin>>a; temp=strlen(a); for(;temp>0;tem