| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1077 人关注过本帖
标题:请教字符串赋值段错误问题
取消只看楼主 加入收藏
晓云林
Rank: 2
等 级:论坛游民
帖 子:46
专家分:35
注 册:2011-8-29
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
请教字符串赋值段错误问题
代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void tolowercase(char* str1)
{
    while(*str1 && *str1!='\0')
    {
        *str1 = tolower(*str1++);
    }
    *str1 = '\0';
}

int main(int argc, char *argv[])
{
    char *a = "D";
    tolowercase(a);
    return 0;
}

调试报错:
Program received signal SIGSEGV, Segmentation fault.
0x080484e7 in tolowercase (str1=0x80485f1 "") at sendre.c:30
30            *str1 = tolower(*str1++);
请问问题是什么。谢谢~~



搜索更多相关主题的帖子: received include return 字符串 
2011-08-29 11:35
晓云林
Rank: 2
等 级:论坛游民
帖 子:46
专家分:35
注 册:2011-8-29
收藏
得分:0 
回复 3楼 lz1091914999
谢谢,试了一下char a[] = "D";  还是报错~~
2011-08-29 12:04
晓云林
Rank: 2
等 级:论坛游民
帖 子:46
专家分:35
注 册:2011-8-29
收藏
得分:0 
回复 2楼 hahayezhe
是 *str1 = tolower((*str1)++); 我本来是想用 tolowercase(argv[1]); 一调试就出现了段错误,然后换了char *a="D";试一下的。我是初学者,正在探索阶段,所以很多用法不是很正确,还请指教。
2011-08-29 12:10
晓云林
Rank: 2
等 级:论坛游民
帖 子:46
专家分:35
注 册:2011-8-29
收藏
得分:0 
回复 9楼 TonyDeng
恩,这个是在网上看到的别人用的,我自己理解的是:把str1指向的数据传入tolower(),经过处理后返回给str1,再将现在的str1指向的类容加一,也就是传入A最后可以得b,不知道这么理解对么。
2011-08-29 13:15
晓云林
Rank: 2
等 级:论坛游民
帖 子:46
专家分:35
注 册:2011-8-29
收藏
得分:0 
回复 10楼 Luminal
谢谢指教啊~
2011-08-29 13:36
晓云林
Rank: 2
等 级:论坛游民
帖 子:46
专家分:35
注 册:2011-8-29
收藏
得分:0 
回复 11楼 馨梦惜夕
恩,学习了~
2011-08-29 13:37
快速回复:请教字符串赋值段错误问题
数据加载中...
 
   



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

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