c 语言 实现字符串反转

代码如下:

#include <stdio.h>

char * strrev(char *);

int main(void)

{

char str[] = "hello";

printf("%s\n",strrev(str));

return 0;

}

char * strrev(char *str)

{

char *h = str;

char *t = str;

char tmp;

while(*t++){};

t--; //回退t++;

t--; //消除‘/0‘

while(h < t)

{

tmp = *h;

*h++ = *t;

*t-- = tmp;

}

return str;

}

总结:

字符串的字面值是存放在静态数据区的,是不能改变的。所以我们选用字符串数组

时间: 2024-12-18 15:53:05

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

(C语言)递归调用实现字符串反转

问题描述: 编写一个函数reverse_string(char *srring)(递归实现) 实现:将参数字符串中的字符反向排列. 要求:不能使用处C库函数中的字符串操作函数. 程序分析: 思路如下: 本程序用递归的思想实现这一功能,最关键的一点是要改变'\0'所在的位置.a.先交换字符串最外层的两个字符,同时保存第一个字符的值(称之为压栈)  b.将指针指向下一个字符,将两个值交换后的最后一个字符赋为'\0',从而减小问题的规模.c.递归调用,相当于传入新的字符串.d.递归调用结束后,把之前保

C语言08字符串 &amp; 预处理 &amp; 结构体

项目开发中字符串模型建立 strstr的while dowhile模型 //int cltClient_rev(void *handle, unsigned char *buf, int *buflen) //不要相信别人给你传送的内存地址是可用的 int getCout(char *str, char *substr, int *count) { int rv = 0; char *p = str; int ncout = 0; if (str==NULL || substr== NULL |

【华为机试练习】字符串反转

题目描述写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串.例如:输入描述:输入N个字符输出描述:输出该字符串反转后的字符串 解法1(C语言版): #include<stdio.h> int main() { char str[1000]; int len, i, j; char temp; gets(str); len = strlen(str); for(i = 0, j = len - 1; i < j; ++i, --j) { temp = str[i]; str[i]

字符串反转方法汇总

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

字符串反转的进一步应用----单词反转

字符串反转:如给定一字符串 good bye boy. 反转之后: .yob eyb doog 实现思路: 分别从第一个字符和最后一个字符,同时向中间遍历,交换遇到的每一个字符.JAVA实现代码如下:字符数组str存储待反转的字符串. private static void inverse(char[] str, int start, int end){ int i = start; int j = end; while(i < j){ char tmp = str[i]; str[i] = s

leetcoder系列001:c++字符串反转

问题: 给定一个输入字符串,字符串字反向词.例如 s = "the sky is blue",返回 "blue is sky the". 我的答案: class Solution { public: void reverseWords(string &s) { if(s.size() <= 0) return; string pattern = " "; string::size_type pos; vector<string

c语言中字符串操作的工具类

 1.编写头文件 #define _CRT_SECURE_NO_WARNINGS //#pragmawarning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> struct CString { char *p;        //保存字符串首地址 int reallength; //实际长度 }; typedef struct CString mystring;//

C语言中字符串如何转换为二进制、八进制、十进制、十六进制

在C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现 相关函数: atof, atoi, atol, strtod, strtoul表头文件: #include <stdlib.h>定义函数: long int strtol(const char *nptr, char **endptr, int base):函数的解释说明 这个函数会将参数nptr字符串根据参数base来转换成长整型数.参数base

iOS开发入门 ? C语言(字符串、字符串数组、命令行参数)

字符串 1. 概念 用双引号引起来的就是字符串 "a string" //C语言编译器会将两个并列的字符串自动拼接成一个字符串 "a string""another a string" // \是换行连接的标记(一行不够写) "a looooooooooong \ string" 常见ASCII编码: 'A' == 65    'a' == 97    '0' == 48    '\0' == 0 int a[10]; //表