翻转c风格的字符串

2023-05-16

这里的字符串是c风格的字符串

以'\0'结尾

#include <stdio.h>
using namespace std;
void reverse_string_01(char *);
void reverse_string_02(char *);
void swap(char &a,char &b);
//void swap(char **a,char **b);
int _tmain(int argc, _TCHAR* sargv[])
{   char *str="abcdefghijk";
	//cout<<"请输入一个字符串:"<<endl;
	//gets(str);
	reverse_string_01(str);
	puts(str);
	reverse_string_01(str);
	puts(str);
	system("pause");
}


void reverse_string_01(char* s)
{
	if(!s) return;
	char* left=s,*right=s;
	while(*right)
		++right;
	--right;
	while(right>left)
	{
		swap(*left++,*right--);
	}
}
void reverse_string_02(char* s)
{
	if(!s) return;
	int n=strlen(s),i;
	for(i=0;i<n/2;i++)
	{
		swap(s[i],s[n-i-1]);
	}
}
void swap(char& a,char& b)
{
	
	a=a^b;//为什么运行后会发生错误?
	b=a^b;
	a=a^b;
	//char temp;
	//temp=a;
	//a=b;
	//b=temp;
}

运行以上程序,调用到swap函数时会报这样的错:

projectOne.exe 中的 0x0090161f 处最可能的异常: 0xC0000005: 写入位置 0x00905838 时发生访问冲突

projectOne.exe 中的 0x0090161f 处有未经处理的异常: 0xC0000005: 写入位置 0x00905838 时发生访问冲突

这是为什么呢?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

翻转c风格的字符串 的相关文章

  • Adaptive AUTOSAR 学习笔记 - AP 背景、技术及特征

    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20 11 版本 本文从AUTOSAR EXP PlatformDesign pdf开始 xff0c 一边学习 xff0c 一边顺带着翻译一下 尽力而为 x
  • gPTP时钟同步(时间同步)协议简介

    一 时间同步要解决的问题 不知道大家还记得军训练习齐步走的场景吗 xff1f 齐步走的动作要领你还记得吗 xff1f 教官首先发出 齐步 走 的命令 xff0c 大家听到 齐步 二字后 xff0c 开始调整动作 xff0c 最终所有人实现动
  • acm有用吗?

    acm有用吗 xff1f 废话 xff0c 没用的话费这么大劲干什么来了 xff0c 但是搞acm需要前期的高付出 xff0c 但是后期会有高回报 xff0c 也不是什么都不管不顾的高付出 xff0c 学好基础课的情况下高付出 中学加小学1
  • std::atomic 原子操作

    类模板 template lt class T gt struct atomic 多线程小结 xff1a 非原子操作 xff0c 不加锁 xff0c 效率很高 xff0c 但无法得到正确的结果非原子操作 xff0c 加锁 xff0c 效率很
  • Adaptive AUTOSAR——Execution Management(VRTE 3.0 R21-11)

    ChatGPT回答 xff1a Adaptive AUTOSAR Execution Management 模块是用于管理软件执行的模块 xff0c 其主要功能包括 xff1a 任务调度 xff1a 支持对任务进行调度和执行 xff0c 以
  • 【C/C++】获取当前系统时间(time_t和tm)清晰梳理

    C C 43 43 获取当前系统时间 xff08 time t和tm xff09 清晰梳理 c 43 43 time t YuXi 0520的博客 CSDN博客 C 43 43 获取系统当前时间 c 43 43 time函数 C 43 43
  • Adaptive AUTOSAR——State Management(VRTE 3.0 R21-11)

    状态管理是自适应平台服务中的一个功能集群 在自适应平台中 xff0c 状态决定了一组活动的自适应应用程序 特定于项目的应用程序 xff0c 即状态管理器 xff0c 决定何时请求状态更改 xff0c 从而更改当前活动的应用程序集 状态管理器
  • Adaptive AUTOSAR 文档官方如何阅读

    目前很多关于 Adaptive AUTOSAR 的文章都是官方文档的简化翻译 xff0c 不如直接看官方文档更全面深入 Adaptive AUTOSAR 文档官方下载地址 Adaptive Platform AUTOSAR https ww
  • Adaptive AUTOSAR-诊断管理-Diagnostic Server概述和诊断通信

    Diagnostic Server 对于AUTOSAR adaptive平台 xff0c 不用重新刷写整个ECU即可添加新的软件包 xff0c 各个软件包描述为SoftwareClusters xff0c 每个SoftwareCluster
  • Linux启动过程

    Linux 系统启动过程 菜鸟教程 Linux 系统启动过程 linux启动时我们会看到许多启动信息 Linux系统的启动过程并不是大家想象中的那么复杂 xff0c 其过程可以分为5个阶段 xff1a 内核的引导运行 init系统初始化建立
  • SOTA技术概述

    SOTA技术概述 懂车帝 懂车帝提供对于整车OTA类型 xff0c 主要分为两类 xff0c FOTA xff08 Firmware over the air xff09 和SOTA xff08 Software over t https
  • 什么是AUTOSAR?为什么汽车公司开始采用AUTOSAR来开发新产品?

    越来越多的车企开始应用ATUOSAR xff0c 也有很多公司在招聘时会在JD里注明 xff0c 应聘者需要熟练掌握AUTOSAR xff0c 那么什么是AUTOSAR xff1f 为什么从奔驰 宝马等传统豪华汽车巨头 xff0c 到新势力
  • 4.5 车载通信技术SOME/IP 白皮书

    1 SOME IP 协议概述 SOME IP xff08 Scalable service Oriented MiddlewarE over IP xff09 是指基于 IP 的可扩展的面向服务的中间件 SOME IP 协议于 2011 年
  • 计算机图形学方向和前景&&3D

    我是刚入坑计算机图形学的小菜鸟 xff0c 在百度上搜索计算机图形学方向和前景和3D xff0c 几乎不能搜到什么有用的东西 xff0c google还能搜到些有用的 xff0c 但是需要翻墙 恰好前几天山大承办的games xff0c 北
  • 在字符串中插入另一个字符串方法二

    算法分析 xff1a 把第一个字符串的前一部分和后一部分分别保存在两个字符串result和tmp中 然后再做一个拼接reslut 61 reslut 43 str2 43 tmp include lt stdio h gt include
  • linux压缩命令学习小结

    1 zip格式压缩 zip 压缩文件名 原文件名 zip命令只能压缩文件 压缩文件Ex xff1a zip file1 zip file1 解压缩 unzip file1 zip zip r 压缩文件名 源目录 加了 r就是压缩目录了 mk
  • c语言之链表学习小结

    1 链表 Typedef struct linkworker 此处Typedef 就是给结构体变量名struct linkworker取别名LINK char id 10 char name 10 struct linkworker nex
  • Linux的vim编辑器的使用方法

    Vim 没有菜单 xff0c 只有命令 vim 编辑器有三种模式 xff1a 1 命令模式 xff08 等待用户输入命令 xff09 xff0c 2 输入模式 xff08 等待用户向文本中输入内容 xff09 xff0c 3 底行模式 xf
  • shell中的俄罗斯方块小游戏

    俄罗斯方块的shell脚本 bin Bash Tetris Game APP declaration APP NAME 61 34 0 34 APP VERSION 61 34 1 0 34 颜色定义 cRed 61 1 cGreen 61

随机推荐

  • 三个方法实现求两个数的最大公约数

    复制而来 xff0c 这不是我写的 xff01 从键盘输入两个整数 xff0c 求着两个整数的最大公约数 解题思路 xff1a 从键盘输入两个数 xff0c 通过以下的三个方法实现求两个数的最大公约数 xff1a 辗转相除法 xff1a 取
  • c语言 一维字符型数组

    什么是一维字符型数组 xff1a char a 5 这个数组中含有5各元素 xff0c 每个元素都是一个字符型变量 如何定义一字符型维数组 xff1a 格式 xff1a char 数组名 长度 ex char a 6 定义了一个含有6个字符
  • c语言常用的几个函数

    strcpy函数 2 xff09 如何给字符串进行赋值 xff1a A 字符串不能直接赋值 B 目前而言 给字符串赋值的方法是通过strcpy函数 C strcpy函数需要string h的头文件的支持 D 在使用strcpy函数时不能把大
  • 两个字符型数组,a[]="abcdefgh",用户输入一个值n,把数组a中右边n个字符复制到数组t中,最后输出数组t的值。

    两个字符型数组 xff0c a 61 34 abcdefgh 34 用户输入一个值n xff0c 把数组a中右边n个字符复制到数组t中 xff0c 最后输出数组t的值 算法分析 xff1a 定义两个字符型数组 char a 61 34 ab
  • 图文详解win10/8.1/7系统cmd命令提示符出现“不是内部或外部命令,也不是可运行的程序或批处理文件”

    声明下 xff1a 本教程支持win10 win8 1 8 win7 winxp等windows桌面系统 首先我们需要打开系统的环境变量 xff0c 那么在哪里能找到环境变量呢 xff1f 当然是在系统属性里了 tips xff1a 按下w
  • 关于字符串前导*的移动/删除的几种情况

    1 编写一个程序把所有字符串的前导 保留 xff0c 其他的 号都删除 效果 xff1a shd swbd dwh 转换成 shdswbddwh 算法分析 xff0c 先研究一个字符串 char a 100 61 34 shd swbd d
  • 函数的嵌套与递归调用

    什么函数的嵌套调用 main gt fun gt fun2 gt fun3 归调用 什么函数的 求1 xff01 43 2 xff01 43 3 xff01 43 4 43 43 n 算法分析 xff1a 写一个函数求n的阶乘 要写一个函数
  • c语言学习之 变量的分类学习笔记

    A 按作用域来分类 全局变量 xff1a 不在任何一个函数里面定义的变量 局部变量 xff1a 在函数里面定义的变量 区别 xff1a 全局变量可以被一个程序中的所有函数都来使用 局部变量只能在定义它的本函数中来使用 所有的函数都共享全局变
  • 以数组作为函数的参数c学习笔记

    以数组作为函数的参数 格式 xff1a 类型标识符 函数名 类型标识符 数组名 int n 处理的代码 A n表示数组的长度 B 在以数组作为函数参数时 xff0c 数组一般不写大小 C 它的大小由变量n来决定 sum int a int
  • c语言之指针之谜

    变量地址的意义 指针的定义 指针的赋初值 通过指针改变变量的值 内存 xff1a xff08 锅 xff09 A 在计算机中有一个很大的处理场 B 程序都是在内存中运行的 C 总结 xff1a 数据的处理场地 外存 xff1a xff08
  • 指向二维数组的指针学习笔记

    二维数组与一维数组的关系 二维数组的指针指向一维数组的指针 一维数组的情况下 xff1a 数组名代表数组首地址 a 43 i 61 a i 二维数组与指针 int a 3 4 61 1 2 3 4 5 6 7 8 9 10 11 12 a
  • 指向一维数组的指针学习笔记

    main int a 61 2 4 6 8 10 y 61 1 x p p 61 amp a 1 for x 61 0 x lt 3 x 43 43 y 43 61 p 43 x 1 43 4 43 6 43 8 printf 34 y 6
  • 生日快乐音乐小程序

    include 34 iostream 34 include 34 time h 34 include lt windows h gt include lt stdio h gt include lt conio h gt using na
  • c语言之指向字符串的指针学习笔记

    一 指向字符串的指针 1 xff1a 什么是字符串 xff1f 用双引号括起来的0个或多个字符 34 123 34 2 xff1a 字符串的结束符号 39 0 39 39 0 39 它是一个字符 xff0c 不是一个字符串 3 xff1a
  • 指向函数的指针与指针数组学习笔记

    指向函数的指针 1 char p 指向字符串的指针 2 int p 指向整型变量的指针 3 int a 4 61 1 2 3 4 p 61 a 指向一维数组的指针 4 int a 3 4 61 p 4 61 a 指向二维数组的指针 5 指针
  • makefile

    目录 一 Makefile简介 1 make解决的问题 xff1a 1 大量代码的关系维护 2 减少重复编译时间 二 Makefile文件命名规则 三 Makefile语法规则 1 Makefile基本规则三要素 xff1a 1 xff09
  • c语言之宏学习笔记

    宏 宏 什么是宏 xff1f 1 用一个字符串表示有意义的常量或常量表达式被称为宏 2 使用宏可以增加程序的灵活性 3 宏为了区分变量一般用大写字母 xff0c 也可以用小写字母 4 宏不是语句 xff0c 所以在定义宏的时候不要加分号 x
  • 一道有趣的数学题

    爱因斯坦曾出过这样一道有趣的数学题 xff1a 有一个长阶梯 xff0c 若每步上2 阶 xff0c 最后剩1阶 xff1b 若每步上3阶 xff0c 最后剩2阶 xff1b 若每步上5阶 xff0c 最后剩4阶 xff1b 若每步上6阶
  • c语言之文件学习

    文件是相关信息的集合 文字信息 声音信息 图形信息 文件的取名 xff1a 主文件名 扩展名 文件的分类 xff1a xff08 c 程序中 xff09 A xff1a 文本文件 B xff1a 二进制文件 xff08 data xff09
  • 翻转c风格的字符串

    这里的字符串是c风格的字符串 以 39 0 39 结尾 include lt stdio h gt using namespace std void reverse string 01 char void reverse string 02