关于指针 与 字符数组
来源:互联网 发布:宁波软件开发公司 编辑:程序博客网 时间:2024/06/05 18:18
在我们写代码中使用到指针的字符串时,经常会出现运行错误,大部分出现的错误是试图去改变指针的字符串的内容。
指针的字符串的内容是保存在静态数据区的,是不能够改变的。
需要使用字符数组。
例如改变
char *p="abcdef";
p[1]='d';这是错误的不能改变里面的内容,但是可以使用里面的数据
char p[]="abcdef";
p[1]='d';这是可以的,数组是临时变量,存储在栈里面,可以改变里面的内容,
例如函数:
字符串右移N个字符
#include <iostream>using namespace std;char *youyi(char *str ,int len, int n){int i, j, k;k = 0;char tmp;char *p= str; i = 0 ;j = len-1;while(i<j){tmp = str[i];str[i] = str[j];str[j] = tmp;i++;j--;}i = 0 ;j = len-n-1;while(i<j){ tmp = str[i];str[i] = str[j];str[j] = tmp;i++;j--;}i = len-n;j = len-1;while(i<j){ tmp = str[i];str[i] = str[j];str[j] = tmp;i++;j--;}return p;}void main(){char str[]="abcdef";
char *str="abcdef";//这种方法是错误的,无法改变指针中的字符串内容。char *p;int len = strlen(str);p = youyi(str ,len , 2);cout<<p;}
还有
自己定义的 char *mystrcat(char *str ,char *src)
#include <iostream>using namespace std;char *mystrcat(char *str ,char *src){char *p = str;while(*str){str++;}while(*src){*str==*src;str++;src++;}*str='\0';return p;}void main(){char str[]="abcdef";char *str="abcdef";//错误的char *src="gh";char *p;p = mystrcat(str ,src);cout<<p;}
- 关于指针 与 字符数组
- 关于printf与指针数组与指向字符的指针
- 字符数组与指针
- 字符数组与指针
- 指针与字符数组
- 字符数组与字符指针
- 字符数组与字符指针
- 字符指针与字符数组
- 字符数组与字符指针
- 字符数组与字符指针
- 字符数组与字符指针
- 字符指针与字符数组
- 字符数组与字符指针
- 字符数组与字符指针
- 字符数组与字符指针
- 字符数组与字符指针
- 字符数组与字符指针
- 字符数组与字符指针
- Tortoise Git的安装使用
- 重构要点总结
- 通过WebService获取全国各大城市天气
- xcode归档管理器来评估app
- sqlite 的gui,还是sqlite administrator 好用
- 关于指针 与 字符数组
- HOJ1003//Mixing Milk
- nyoj 73 比大小
- 夜间开车安全秘宝
- android轻松实现背景的相关设置
- 部分字符串库函数的重写(源码) toupper,memcpy,memmove,memset,memchr,strlen,strcpy,strcat,strcmp,strchr
- XML--DTD--Schema--DOM--SAX--DOM4J--XPATH
- 解决DOS中的乱码以及编码
- 心在天堂