读书人

求大家伙儿解答此题指针与字符串不

发布时间: 2012-09-13 09:51:53 作者: rapoo

求大家解答此题,指针与字符串,不知道哪错了
#include <stdio.h>


void uppercase(char *str)
{

while(*str!='\0')
{
if((*str>='a')&&(*str<='z'))
*str-=('a'-'A');
str++;
}

}

int main()
{

char *str1="aBcDeF";
uppercase(str1);
printf("%s \n",str1);
return 0;
}
这个是将字符串中的小写字母改为大写?
还有这个字符串拷贝的问题?
#include <stdio.h>

char * strcpy_str (char *strDest,const char *strSrc)

{

// assert((strDest!=NULL)&&(strSrc!=NULL));
char *strDestCopy=strDest;

while ((*strDest++=*strSrc++)!='\0');

return strDestCopy;

}


void main()
{
char *str=NULL;
char *strdest="abcd";
str=strcpy_str(strdest,"hello");
printf("%s \n",str);

}
vc++6.0中编译通过,但运行时程序崩溃,why?
谢谢

[解决办法]
char *str1="aBcDeF"; 常量字符串
[解决办法]
1楼正解
char *str1="aBcDeF"和char *strdest="abcd"都是常量字符串,指针str1和strdest所指的内存是不能被改写的
[解决办法]

C/C++ code
void uppercase(char *str){    while(*str!='\0')     {        if((*str>='a')&&(*str<='z'))            *str-=('a'-'A');        str++;    }}int main(){    char str1[] = "aBcDeF";    uppercase(str1);    printf("%s \n",str1);    return 0;}#include <stdio.h>char * strcpy_str (char *strDest,const char *strSrc){    // assert((strDest!=NULL)&&(strSrc!=NULL));    char *strDestCopy=strDest;    while ((*strDest++=*strSrc++)!='\0');    return strDestCopy;}void main(){    char *str=NULL;    char strdest[]="abcdsss";    str=strcpy_str(strdest,"hello");    printf("%s \n",str);}
[解决办法]
字符串常量是不能被修改的
[解决办法]
#include <stdio.h>


void uppercase(char *str){
char* str_temp=str;
while(*str_temp!='\0'){
if((*str_temp>='a')&&(*str_temp<='z'))
*str_temp-=('a'-'A');
str_temp++;
}

}

int main(){
//char *str1="aBcDeF";// str1 is const string,its element can't been modified.
char str1[]="aBcDeF";
uppercase(str1);
printf("%s \n",str1);
printf("a=%d, A=%d\n",'a','A');
return 0;
}
[解决办法]
探讨

引用:

C/C++ code
void uppercase(char *str)
{

while(*str!='\0')
{
if((*str>='a')&&(*str<='z'))
*str-=('a'-'A');
str++;
}

}

int main()
{

char str1[] ……

……

[解决办法]
在tc中可以运行
[解决办法]
#pragma comment(linker,"/SECTION:.rdata,RW")
//加这句可以让常量区可写。后果自负。
[解决办法]
关于常量字符串看这里

读书人网 >C语言

热点推荐