c++程序报错 利用函数实现将字符串大写字母转小写字母

是小狐狸啊 2016-04-27 10:03:35
利用函数实现将字符串中大写字母转小写字母,以下是我写的程序,可是错在哪里呢······求大神解惑!谢谢泥萌!

char strcase_switch(char*string)
{

int i;
for(i=0;string[i]!='\0';i++)

if(string[i]>='a'&&string[i]<='z')
{
string[i]=string[i]-32;
}

if(string[i]>='A'&&string[i]<='Z')
{
string[i]=string[i]+32;
}
return string[i];
}
int main(int argc, char * argv[])
{
cout<<strcase_switch("abcdefGHIJKL")<<endl;
return 0;
}
...全文
463 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-04-28
  • 打赏
  • 举报
回复
#pragma comment(linker,"/SECTION:.rdata,RW")
//加这句可以让常量区可写,后果自负!
是小狐狸啊 2016-04-28
  • 打赏
  • 举报
回复
引用 3 楼 xteaj 的回复:
char* strcase_switch(char*string) { int i; for(i=0;string[i]!='\0';i++) if(string[i]>='a'&&string[i]<='z') { string[i]=string[i]-32; } if(string[i]>='A'&&string[i]<='Z') { string[i]=string[i]+32; } return string; }
为什么用的是char* strcase_switch(char*string),这是个指针函数?为什么char后有*?它与char strcase_switch(char*string)的区别在哪?
  • 打赏
  • 举报
回复
应该是返回字符串
  • 打赏
  • 举报
回复
char* strcase_switch(char*string) { int i; for(i=0;string[i]!='\0';i++) if(string[i]>='a'&&string[i]<='z') { string[i]=string[i]-32; } if(string[i]>='A'&&string[i]<='Z') { string[i]=string[i]+32; } return string; }
  • 打赏
  • 举报
回复
1>for循环少了一对括号吧 2>调用方式不对,你的是一个常量字符串在调

char strcase_switch(char* string)
{

	int i;
	for (i = 0; string[i] != '\0'; i++)
	{
		if (string[i] >= 'a' && string[i] <= 'z')
		{
			string[i] = string[i] - 32;
		}

		if (string[i] >= 'A' && string[i] <= 'Z')
		{
			string[i] = string[i] + 32;
		}
	}

	
	return string[i];
}

int _tmain(int argc, _TCHAR* argv[])
{
	char str[] = "abcdefGHIJK";
	cout << strcase_switch(str) << endl;
	return 0;
}
dustpg 2016-04-27
  • 打赏
  • 举报
回复
字符串字面量不可修改, 这种做法和
0 = 1;
一样

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧