| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 367 人关注过本帖
标题:字符串修改的问题!
只看楼主 加入收藏
赤云
Rank: 2
等 级:论坛游民
帖 子:82
专家分:35
注 册:2014-12-29
结帖率:64.71%
收藏
已结贴  问题点数:19 回复次数:5 
字符串修改的问题!
一个已存在的字符串,通过指针不可以改变字符串的内容,只能通过字符串处理函数对字符串进行操作(c语言范畴)。这句话对吗???
搜索更多相关主题的帖子: 字符串 c语言 
2015-02-12 15:48
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:10 
程序代码:
#include <stdio.h>

int main(void) {
    char str[] = "abc", *p = str;
    puts(str);

    for(; *p != '\0'; ++p) *p -= 32;

    puts(str);
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-02-12 16:01
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:8 
这句话对不对 看你的字符串存储在哪里 是在函数的栈空间 还是在静态区

如果是在栈里 就像楼上的例子 是可以自由修改的

在静态区 一般是不能改的 比如

char *str = "这是一个不能修改的例子";


当然 如果静态区是可读可写的 也是可以改的



2015-02-12 16:07
赤云
Rank: 2
等 级:论坛游民
帖 子:82
专家分:35
注 册:2014-12-29
收藏
得分:0 
xiexie
2015-02-12 16:09
赤云
Rank: 2
等 级:论坛游民
帖 子:82
专家分:35
注 册:2014-12-29
收藏
得分:0 
那这个程序为什么不能运行?
#include <stdio.h>
 #include <string.h>
 void fun(char* p);
 int main()
 {
     char *a="def35adh3kjsdf7";
     fun(a);
     puts(a);
     return 0;
 }
 void fun(char* p){
     int i,len,l;
     char *p1=p,t;
     len=strlen(p);
     for(;p<p1+len;p++){
        if(*p>='0'&&*p<='9')l=p-p1;
        if(*p>='a'&&*p<='z')continue;
        for(i=len-1;i;i--)
        if(*(p1+i)>='a'&&*(p1+i)<='z'){
           t=*(p1+i);
           *(p1+i)=*(p1+l);
           *(p1+l)=t;
        }
     }
 }
 
   
2015-02-12 16:09
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:1 
以下是引用赤云在2015-2-12 16:09:43的发言:

那这个程序为什么不能运行?
#include
 #include
 void fun(char* p);
 int main()
 {
     char *a="def35adh3kjsdf7";
     fun(a);
     puts(a);
     return 0;
 }
 void fun(char* p){
     int i,len,l;
     char *p1=p,t;
     len=strlen(p);
     for(;p

你这样写 这个字符串默认就是不能修改的
2015-02-12 17:58
快速回复:字符串修改的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012261 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved