纪念逝去的岁月——C/C++字符串反转

几年前,我还不会写这个

输入:hello world

输出:dlrow olleh

代码

 1 #include <stdio.h>
 2 #include <string.h>
 3
 4 void cvtstring(char * pStr)
 5 {
 6     if(NULL == pStr)
 7     {
 8         return ;
 9     }
10     int iLen = strlen(pStr);
11     int iStart = 0, iStop = iLen / 2;
12     int i  = 0;
13     for(i = iStart; i < iStop;i++)
14     {
15         char x = pStr[i];
16         /*printf("x = %c\n", x);*/
17         pStr[i] = pStr[iLen - 1 - i];
18         pStr[iLen - 1 - i] = x;
19     }
20 }
21
22 int main()
23 {
24     char p[100] = {"hello world"};
25     printf("src : [%s]\n", p);
26     cvtstring(p);
27     printf("dst : [%s]\n\n", p);
28
29     printf("src : [%s]\n", p);
30     cvtstring(p);
31     printf("dst : [%s]\n", p);
32
33     return 0;
34 }

编译

$ g++ -o cvtstring cvtstring.cpp

运行

$ ./cvtstring
src : [hello world]
dst : [dlrow olleh]

src : [dlrow olleh]
dst : [hello world]

再见……

时间: 2024-10-14 09:00:52

纪念逝去的岁月——C/C++字符串反转的相关文章

纪念逝去的岁月——C/C++字符串回文

判断字符串是否是回文: 1. 输入:hello world dlrow olleh 输出:1 2. 输入:nihao hello 输出:0 代码 #include <stdio.h> #include <string.h> int palindrome(char * p) { if(NULL == p) { return 0; } int iLen = strlen(p); int iHalf = iLen / 2; int i = 0, iEnd = iLen - 1; for(

纪念逝去的岁月——C/C++字符串旋转

几年前,我还不会写这个 例如: 1.向右→旋转5个字符 输入:HelloWorld 输出:WorldHello 2.向右→旋转3个字符 输入:HelloWorld 输出:rldHelloWo 代码 1 #include <string.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 int scrollstr(char * p, int iStep) 6 { 7 if(NULL == p) 8 { 9 return -

纪念逝去的岁月——C/C++排序二叉树

1.代码 2.运行结果 3.分析 1.代码 #include <stdio.h> #include <stdlib.h> typedef struct _Node { int value; struct _Node * pLeft; struct _Node * pRight; } Node; Node * getNewNode(int iValue) { Node * p = (Node *)malloc(sizeof(Node)); if(NULL != p) { p->

纪念逝去的岁月——C++实现一个栈

1.代码 2.运行结果 1.代码 stack.cpp #include <stdio.h> #include <string.h> class ClsStack { private : void ** __m_Data; int __m_pos; size_t __m_memsize; protected : int __resize(size_t n); size_t __doublesize(size_t n); public : ClsStack(size_t n = 0);

纪念逝去的岁月——C++实现一个队列(使用类模板)

1.代码 2.运行结果 1.代码 1 #include <stdio.h> 2 #include <string.h> 3 4 template <typename T> class ClsQueueData 5 { 6 private : 7 ClsQueueData * __m_next; 8 T * __m_Data; 9 10 protected : 11 void _clear(); 12 13 public : 14 ClsQueueData(T * pDa

纪念逝去的岁月——C++实现一个栈(使用类模板)

这个版本是上个版本的加强版,上个版本的代码:http://www.cnblogs.com/fengbohello/p/4542912.html 1.代码 2.运行结果 1.代码 1 #include <stdio.h> 2 #include <string.h> 3 4 //#define USEDEBUG 5 6 #ifdef USEDEBUG 7 #define DEBUG(fmt, arg...) 8 do{ 9 printf("%s %d %s() : "

纪念逝去的岁月——C/C++交换排序

交换排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { int i = 0; for(i = 0; i < iLen; i++) { printf("%d ", iList[i]); } printf("\n"); } int exchangeSort(int iList[], int iNum) { int i = 0, j = 0; for(i = 0; i <

纪念逝去的岁月——C/C++冒泡排序

冒泡排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { int i = 0; for(i = 0; i < iLen; i++) { printf("%d ", iList[i]); } printf("\n"); } int bubbleSort(int iList[], int iLen) { int i = 0, j = 0; for(i = 0; i < i

字符串反转方法汇总

split()方法将一个字符串对象的每个字符拆出来,并且将每个字符串当成数组的每个元素 reverse()方法用来改变数组,将数组中的元素倒个序排列,第一个数组元素成为最后一个,最后一个变成第一个 join()方法将数组中的所有元素边接成一个字符串 来看个实例: 1 function reverseString(str) { 2 // 第一步,使用split()方法,返回一个新数组 3 // var splitString = "hello".split("");