关于C语言字符串处理之可变字符串
来源:互联网 发布:蜂王浆胶囊 知乎 编辑:程序博客网 时间:2024/06/05 23:45
<span style="font-size: 18px;">今天看到一个帖子,帖子内容大概就是用C语言实现把字符串中的小写字符修改成大写的字符,看到了感觉这还不简单,但是一直出现关于内存的问题。</span>
void change(char *str){ char *p = str; while(*p!='\0'){ if(*p>='a' && *p<='z'){ printf("%c\n",*p); *p= *p - 'a' + 'A'; } p++; }}
这段代码本身没有错误,但是如何去用它也很关键。
int main(){ char *p = "school"; printf("%s\n",p); change(p); printf("%s\n",p); return 0;}
开始的时候以上面的方式调用,但是一直出现内存错误,百思不得其解。
后面突然想起p指向一个常量字符串,其不可以修改,相当于静态字符串,若要变成可修改的字符串,需要给字符串赋予一个动态存储空间,使其具有可变性。
int main(){ char *str = (char *)malloc(sizeof(char)*50); char *p = "school",*tempstr=str;/* p为需要修改的字符串 */ while(*p!=NULL){*(tempstr++)=*p++; } *tempstr='\0';/* 为str添加字符结束符 */ printf("%s\n",str); change(str); printf("%s\n",str); return 0;}
0 0
- 关于C语言字符串处理之可变字符串
- Object-c之可变字符串
- 字符串处理总结之四(C语言字符串处理)
- C语言之字符串处理函数
- C语言字符串处理
- 字符串处理c语言
- c语言 字符串处理
- C语言字符串处理
- C语言字符串处理
- 关于c语言字符串
- 【C#】之字符串处理
- C语言:使用链表实现的可变长度字符串处理函数
- C语言之字符串
- C语言之字符串
- C语言之字符串
- C语言之字符串
- C语言之字符串
- C语言之字符串
- 半小时学会上传本地项目到github
- solr-4.10.0、tomcat7、IKAnalyzer2012FF_u1中文分词器相整合以及相关配置
- 寒風的Cocos之旅之Lua篇---2048项目的结构
- 【闲】用PPT制作弹幕效果
- JMeter特殊情况二:针对某些请求数据每次请求都是变化的情况
- 关于C语言字符串处理之可变字符串
- nc工具使用
- SLICK+SQLITE+SCALA
- 自定义dialog二三事
- onCreate中获取控件宽高等于0的解决办法
- undefined reference问题总结
- Java开源电商项目比较
- 使用xcode git pull成功一些文件没有下载下来的原因
- linux常用命令—— 磁盘管理(十二)