使用C语言实现字符串逆序操作案例

编写一个函数 reverse_string(char * string)
实现:将参数字符串中的字符反向排列。
要求:不能使用C函数库中的字符串操作函数。
非递归实现:

#include<stdio.h>

//编写一个函数 reverse_string(char * string)(非递归实现)
//实现:将参数字符串中的字符反向排列。
//要求:不能使用C函数库中的字符串操作函数。

//求字符串长度
int my_strlen(char* str)
{
	int count = 0;
	while(*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}

void reverse_string(char* str)
{
	int left = 0;
	int right = my_strlen(str) - 1;
	while (left < right)
	{
		char temp = str[left];
		str[left] = str[right];
		str[right] = temp;
		left++;
		right--;
	}
}

int main()
{
	char arr[] = "hellobit";
	reverse_string(arr);
	printf("%s\n", arr);
	return 0;
}

输出结果:

递归实现:

#include<stdio.h>

//编写一个函数 reverse_string(char * string)
//实现:将参数字符串中的字符反向排列。
//要求:不能使用C函数库中的字符串操作函数。

//求字符串长度
int my_strlen(char* str)
{
	int count = 0;
	while(*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}

//递归实现
void reverse_string(char* str)
{
	char temp = str[0];
	int len = my_strlen(str);
	str[0] = str[len - 1];
	str[len - 1] = '\0';//末尾置1方便计算字符串长度以及置换其他位
	if (my_strlen(str)>1)
	{
		reverse_string(str + 1);
	}
	str[len - 1] = temp;//将末尾置换
}

int main()
{
	char arr[] = "hellobit";
	reverse_string(arr);
	printf("%s\n", arr);
	return 0;
}

输出结果:

到此这篇关于使用C语言实现字符串逆序操作案例的文章就介绍到这了,更多相关C语言实现字符串逆序内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C语言中“不受限制”的字符串函数总结

    "不受限制的"字符串函数 按<C和指针>中所说,那些常用的字符串函数都是"不是限制的",就是说它们只能通过寻找字符串末尾的NULL来判断字符串的长度. strlen strlen函数用于求解字符串长度,其返回类型为unsigned int(即size_t).strlen函数从起点开始,往后计数,遇到'\0'停止. 值得注意的是:strlen函数的返回类型.看如下代码: #include<string.h> #include<iostre

  • C语言不使用strcpy函数如何实现字符串复制功能

    Ⅰ )字符串复制函数 字符串复制是字符串操作中比较常用的操作之一.C语言库函数中提供的字符串复制函数是:strcpy函数.该函数的功能为:把源字符数组中的字符串复制到目的字符数组中,字符串结束标志"\0"也一同复制.下面实例为通过自定义函数完成字符串复制功能. Ⅱ)源代码: #include<stdio.h> void Copy_string(char* str1, char* str2); //函数声明 int main() { char str1[20]; char s

  • 在C语言中输入中文字符串讲解

    C语言中的字符串是以ASCII码表的形式存入的,输入英文字符是以英文字符对应的ASCII码的形式进入寄存器中的,例如输出hello world!: 将c反汇编得到, 可以看到h的ASCII码是68,e的ASCII码是65等等存放进内存的,那中文字呢?中文字并没有对应的ASCII码,还可以显示出来吗? 答案当然是肯定的,在计算机中存储中文使用的编码规则是GB2312或GB2312-80,规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,这样我们就可以组合

  • C语言 将字符串逆序输出的实例

    将字符串逆序输出:我先说一个我的错误代码,一开始真的不知道哪里错了,但是当时的想法是自以为是可以的,大家可以先看看我的错误代码 这个代码是错误的,正确的在最下方,不要急,我只是展示一下自己的错误,哈哈 #include <stdio.h> #include <iostream> #include <string.h> #include <math.h> using namespace std; void reverse(char a[]) { char *p

  • C语言中字符串与各数值类型之间的转换方法

    C语言的算法设计中,经常会需要用到字符串,而由于c语言中字符串并不是一个默认类型,其标准库stdlib设计了很多函数方便我们处理字符串与其他数值类型之间的转换. 首先放上一段展示各函数使用的代码,大家也可以copy到自己的机器上运行观察 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int num=183; char str[3]; //itoa函数将整型转换为字符串数值类型 it

  • 使用C语言实现字符串逆序操作案例

    编写一个函数 reverse_string(char * string) 实现:将参数字符串中的字符反向排列. 要求:不能使用C函数库中的字符串操作函数. 非递归实现: #include<stdio.h> //编写一个函数 reverse_string(char * string)(非递归实现) //实现:将参数字符串中的字符反向排列. //要求:不能使用C函数库中的字符串操作函数. //求字符串长度 int my_strlen(char* str) { int count = 0; whil

  • C语言解字符串逆序和单向链表逆序问题的代码示例

    字符串逆序 上次面试碰到一个单向链表逆序的题目,幸好对字符串逆序比较熟悉,类比做出来了.字符串逆序比较简单,直接上代码: void stringReverse(char* p1,char* p2) { if(p1==p2)return; //swap the value of p1 ,p2 *p1=(*p1)+(*p2); *p2=(*p1)-(*p2); *p1=(*p1)-(*p2); if(p1==p2-1)return; else stringReverse(++p1,--p2); }

  • C语言递归实现字符串逆序的方式详解

    C语言实现字符串逆序,具体内容如下所示: 一.迭代的方式实现 贴上代码:迭代的方式实现 '//字符串逆序:不可用字符串操作函数' #include <stdio.h> void swap(char* ch1, char* ch2) '//交换两个字符串' { char tmp = *ch1; *ch1 = *ch2; *ch2 = tmp; } int my_strlen(char* str) '//实现计算字符串字节数' { int count = 0; while (*str != '\0

  • C语言指针如何实现字符串逆序反转

    目录 指针实现字符串逆序反转 知识点 字符串逆序的几种写法 非递归写法 递归写法 指针实现字符串逆序反转 #include<stdio.h> #include<string.h> void rec(char* arr) { //int len = sizeof(arr); // 判断字符串长度需要用strlen. int len = strlen(arr); printf("字符串长度len = %d\n", len); char* p1 = arr; char

  • Python实现字符串逆序输出功能示例

    本文实例讲述了Python实现字符串逆序输出功能.分享给大家供大家参考,具体如下: 1.有时候我们可能想让字符串倒序输出,下面给出几种方法 方法一:通过索引的方法 >>> strA = "abcdegfgijlk" >>> strA[::-1] 'kljigfgedcba' 方法二:借组列表进行翻转 #coding=utf-8 strA = raw_input("请输入需要翻转的字符串:") order = [] for i in

  • PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】

    本文实例总结了PHP字符串逆序排列实现方法.分享给大家供大家参考,具体如下: 关于字符串的逆序排列,最简单的使用PHP函数strrev()的测试代码如下: header('Content-type: text/html; charset=utf-8'); $str = implode('', range(9, 0)); print '< p><strong>Before reversed: </strong>'.$str.'< /p>'; print '&l

  • python对指定字符串逆序的6种方法(小结)

    对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了,今天总结了一下python中对于字符串的逆序输出的几种常用的方法 方法一:直接使用字符串切片功能逆转字符串 #!usr/bin/env python # encoding:utf-8 def strReverse(strDemo): return strDemo[::-1] print(strReverse('pythontab.com')) 结果: moc

  • java递归法求字符串逆序

    本文实例讲述了java递归法求字符串逆序的方法.分享给大家供大家参考.具体实现方法如下: public static String reverseString(String x) { if(x==null || x.length()<2) return x; return reverseString(x.substring(1,x.length()))+ x.charAt(0); } 希望本文所述对大家的java程序设计有所帮助.

  • Python实现字符串的逆序 C++字符串逆序算法

    本文实例为大家分享了Python/C++实现字符串逆序的具体代码,供大家参考,具体内容如下 题目描述:将字符串逆序输出 Python实现一: 借助于列表的reverse()函数,需要注意的是,该函数没有返回值,只会让列表原地逆序 借助于"".join()函数,实现列表向字符串的转换 def strReverse(s): lst = list(s) lst.reverse() ans = "".join(list(lst)) return ans s = str(in

随机推荐