C语言截取字符串将大写字母转换为小写字母。

将被操作字符串中的指定大写字母后的所有字母截取出来,将截取出来的所有字母转换为小写字母,将此字符串写入原来被操作字符串的地址中。
函数原型
int trans(char *str, char ch);
参数说明
str 为被操作的字符串首地址,字符串的元素全为大写字母;最终将转换好的字符串写入此地址中。
ch 为指定的大写字母,此大写字母在str中只出现一次;
返回值
0 操作成功,正常返回;
1 str为空,即str==NULL
比如:字符串”WEIWENDATA” 在字符’N’之后的的字符串为” DATA”;转换后的字符串”data”。

第1个回答  2013-04-25
#include<stdio.h>
#include<string.h>
#include<math.h>

int trans(char *str, char ch)
{
int lon,i;
lon=strlen(str);
for(i=0;i<lon;i++)
{
if(str[i]==ch)
{
break;
}
}
i++;
for(;i<lon;i++)
{
str[i]+=32;
}

return 0;

}
int main(int argc,char *argv)
{
char str[20];
char ch;

printf("请输入你要输入的字符串:\n");
scanf("%s",str);
getchar();
printf("请输入你要转换的字母:\n");
scanf("%c",&ch);
trans(str, ch);
printf("最终结果是:\n");
printf("%s\n",str);
return 0;
}
第2个回答  2013-04-25
int trans(char *str, char ch)

{
int i, j;
for(i=0;*(str+i)!='\0';i++)
{
if(*(str+i)==ch)
break;
}
if(*(str+i)=='\0')
{
*str='\0';
return 1;
}
for(j=0,i=i+1;*(str+i)!='\0';i++,j++)
{
str[j]=*(str+i)-('A'-'a');
}
return 0;
}追问

第二个for循环就是第16行做出来说少一个)在;之前。实在不知道怎么改呀。。

追答

你把我代码拷贝过去编的?

我这里可以啊。

追问

对呀。直接拷贝过去的。不知道怎么回事。。

追答

你再仔细检查一下,是不是少个括号分号什么的。

本回答被提问者和网友采纳
第3个回答  2013-04-25
是要我们写程序吗?问题是什么?追问

对呀,问题是题目哦,

相似回答