=0; i--) { if (s>"A" && s(题目标签: 笔试题,面试题,php面试题,java面试题,阿里巴巴面试题,腾讯面试题"/>
函数A将字符串str1转成小写,并打印出转化前后的字符串。另外,改错时不能改变函数的接口和主要思路。改错时,请指出行号。 char* str1 = "ABDFLjlero我们都是saf"; char* ToLower(char s[]) { static size_t i=sizeof(s); for (i; i>=0; i--) { if (s>"A" && s<"Z") { s += 26; 14 } } return s; } int A() { printf("old str[%s] after lower[%s]n", str1, ToLower(str1)); }
两个坑
1.sizeof(s) 得到是指针大小,不是字符数组长度
2.char* str1 = "ABDFLjlero我们都是saf";是常量字符串,不能对其进行修改
需要在函数中分配内存,保存返回结果
char* ToLower(char s[])
{
if(s==NULL)
return NULL;
size_t i=0;
while(s[i])
++i;
char *res=new char[i+1]();
for (i; i>0; i--)
{
if (s[i-1]>='A' && s[i-1]<='Z')
res[i-1]=s[i-1]-'A'+'a';
else
res[i-1]=s[i-1];
}
return res;
}