字符串转换的问题。
#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)
[解决办法]
#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替代。指针不初始化是非常危险的,报错很正常,即使你的编译通过也可能是你的程序发生严重问题。特别是未初始化,后来又解引用。
[解决办法]
楼主该给分了,给了分多看几遍书!
[解决办法]
#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;}