首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

字符串转换的有关问题

2012-03-06 
字符串转换的问题。#includestdio.h#includememory.hint Getlenth(char* str1){if(*str1NULL)return

字符串转换的问题。
#include<stdio.h>
#include<memory.h>
int Getlenth(char* str1)
{
if(*str1==NULL)
return 0;
else
{
int i=0;
if(* str1!='\0')
++i;
return i;
}
}
char* case1(char* str1)
{
int i=Getlenth(str1)+1;
char* str3=malloc(i);
char* str2=* str1;
* str3=str2;
if(*str3>='a'&&*str3<='z')
{
*str3-=32;
str3++;
}
return str3;

}
int main()
{
  char* case1(char* str1);
char str1;
scanf("%s",&str1);
printf("%s\n",str1);
  printf("%s\n",case1(str1));
getchar();
return 0;
}

[解决办法]
char str1[128]="";

用数组吧。
[解决办法]
char str1; //你定义了个字符来存储字符串是错误的。。。
改为:
char str1[128]="";

if(*str1==NULL)//不符合习惯
改为:
if(str1==NULL)

[解决办法]

C/C++ code
#include<cstdio>#include<memory>#include<cstdlib>int Getlenth(char* str1){    if(str1==NULL)    return 0;    else    {        int i=0;        if(* str1!='\0')        ++i;        return i;    }}char* case1(char* str1){    int i=Getlenth(str1)+1;    char* str3=(char*)malloc(i);    char* str2=str1;    str3=str2;    if(*str3>='a'&&*str3<='z')    {        *str3-=32;        str3++;    }    return str3;}int main(){        char* case1(char*str1);    char *str1=0;    scanf("%s",str1);    printf("%s\n",str1);    printf("%s\n",case1(str1));    getchar();    return 0;}
[解决办法]
另外代码写得太乱了,看着挺烦的。应该写整洁一点,这样思路明了,自己检查也比较快!
[解决办法]
str1什么时候变成地址了,明明定义的是指针。额指针除了定义的时候,取其所指对象的值时,表示指针的指针时,使用的时候一般都不带*吧。 NULL是一个预处理变量,其值为0,编译是会自动以0替代。指针不初始化是非常危险的,报错很正常,即使你的编译通过也可能是你的程序发生严重问题。特别是未初始化,后来又解引用。
[解决办法]
楼主该给分了,给了分多看几遍书!
[解决办法]
C/C++ code
#include<iostream>#include<stdlib.h>using std::cout;char *strupr(char *strSrc){    if(!strSrc)    abort();    char *p;    for(p=strSrc;*p!=0;p++)    {        if(*p>96&&*p<122)        *p-=32;    }    return strSrc;}int main(){    char m[]="AnKupufdKgLVFfKBHIiHHKhjZLjLjLJhZgIg";    cout<<strupr(m);    return 1;} 

热点排行