C语言实现的反转字符串

这段代码大约是10年前写的了,一直收藏在自己的代码仓库里面,贴出来分享下。

网上也有很多类似的代码,学生们用的比较多,工作中用的很少,权做参考。

char* ReverseString(char* s)
{
  char *p , *q;

  p = s;
  q = p + strlen(s) - 1;

  while (q>p) {
    *p ^= *q;
    *q ^= *p;
    *p ^= *q;
    p++;
    q--;
  }
  return s;
}

  

时间: 2024-10-14 11:45:28

C语言实现的反转字符串的相关文章

C语言反转字符串

1.使用string.h中的strrev函数 #include <iostream> #include <cstring> using namespace std; int main() { char s[]="hello"; strrev(s); cout<<s<<endl; return 0; } 2.使用algorithm中的reverse函数 #include <iostream> #include <strin

反转字符串(c语言)

简单的反转字符串实现 #include <stdio.h> #include "string.h" void exchange(char *string, int c1, int c2); void revertString(char *string, int iStart, int iEnd); int main(int argc, const char * argv[]) { // insert code here... printf("Begin>&g

小试牛刀之反转字符串

最近玩儿python玩上瘾了,突然想念c语言,所以,休闲下:解法一:如果没有对申请外部空间有所限制,那就先试试这个喽: 1 void invert_str1(char *old_str, char *new_str) 2 { 3 int i = strlen(old_str)-1; 4 int j = 0; 5 if (old_str == NULL) printf("error!"), exit(1); 6 bzero(new_str, sizeof(new_str)); 7 for

golang——reverse反转字符串

reverse反转,是个比较基础算法.要实现这个方法,从常理考虑可以申请一个新空间,然后将字符串的从尾到头依次填充该空间,最后新空间的内容就是反转后的结果了,这个方式的算法复杂度是O(n),并且还需要重新申请空间. 然而通过对字符串前后对调实现的,方法非常优雅,复杂度一下就降到了O(n/2).用golang语言模拟如下: package main import ( "fmt" ) func main() { s := "hello,golang语言" fmt.Pri

反转字符串

问题: 1.反转字符串,比如str=“hello world!!!",反转后ret=“!!!dlrow olleh"; 代码如下: #include <stdio.h> #include <stdlib.h> char* reverse(char inp[],int size){ if(size<0) return NULL; //NULL代表空地址,null只是一个符号 int i=0,j=size-1; while(i<j){ char tmp=

c语言 C++ 读一字符串

标准c语言 #include <stdio.h> //---------回车被第一个 gets(s) 接收 char s[100]; // -----直接换行,,,,,少一行 int main(int argc, char *argv[]) { int n; scanf("%d",&n); for(int i=1;i<=n;i++) { gets(s); puts(s); } return 0; } #include <stdio.h>      

[算法] C# Revert 单词反转字符串[低时间复杂度]

无聊期间想起了一道字符串反转的问题. 大致要求输入"I am a good boy",输出"boy good a am I". 要求不能用已经封装好的方法实现.于是乎,我上网查了一下,基本都是用了封装后类库.于是我自己写了一个小算法,低时间复杂度高空间复杂度的算法. private string Revert(string str) { if (str.Length == 0) { return string.Empty; } string newStr = nul

345. 反转字符串中元音字母的位置 Reverse Vowels of a String

Write a function that takes a string as input and reverse only the vowels of a string. Example 1:Given s = "hello", return "holle". Example 2:Given s = "leetcode", return "leotcede" 题意:反转字符串中元音字母的位置 方法1:用栈保存元音字符串,时间

c语言实现bit反转的最佳算法-从msb-lsb到lsb-msb

问题 实现如下转换的最佳算法是什么? 0010 0000 => 0000 0100 具体的转换是从MSB->LSB到LSB->MSB, 所有的Bit都必须反转,那意味着,这并不是字节顺序的交换. 最佳答案 注意: 下面的算法都用C实现,但应该可以迁移到其它语言(只是不那么快的时候可别找我). 可选方案 内存占用少(32位int,32位机器)(来源于这里) unsigned int reverse(register unsigned int x) { x = (((x & 0xaa