C语言编写函数转换字符串大小写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编写函数转换字符串大小写相关的知识,希望对你有一定的参考价值。

请编写一个函数fun2,将形参指针ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
请完善fun2函数,并编写main函数,验证你的结果是否正确。(字符串在main函数中定义)。
#include<stdio.h>
#include<string.h>
void fun2(char *ss)

int i;
for(i=1;i<strlen(ss);i+=2)

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



main()

char *ss;
int j;
scanf("%s",ss);
fun2(ss);
puts(ss);

哪里错了?
int j;是复制的时候漏删了

参考技术A #include<stdio.h>
#include<string.h>
void fun2(char *ss)

int i;
for(i=1;i<strlen(ss);i+=2)


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



main()

char ss[10];//存放字符串你得用数组,用指针的话也得初始化指针地址,类似 int a[10],char *p;p=a这样
gets(ss);
fun2(ss);
puts(ss);
参考技术B 小写转大写的标准写法:
void upper(char *s1, char *s2)

int i;
while(*(s1+i) != '\0')

if(s1[i] >= 'a' && s1[i] <= 'z')
s2[i] = s1[i] -('a' - 'A');
else
s2[i] = s1[i];
i++;

s2[i] = '\0';
参考技术C int main() 
char ss[100]; // 这儿应该是数组,否则读入的字符串放哪儿?
scanf("%s",ss);
fun2(ss);
puts(ss);
return 0;

本回答被提问者采纳
参考技术D 1234567int main() char ss[100]; // 这儿应该是数组,否则读入的字符串放哪儿? scanf("%s",ss); fun2(ss); puts(ss); return 0; 第5个回答  2015-05-29 void fun2(char* ss)
要这么写,试试,这样才是传进来一个char类型的指针追问

还是不行

追答

实测已成功。。

看清是char* ss而不是char *ss

输入一个字符串,只取其中的英文字母,全部转换成小写后输出。这个用C语言怎么编写?

楼上说的不错到百度去科普了一下发现了一个小问题
原型:extern char *strlwr(char *s);
用法:#include <string.h>
功能:将字符串s转换为小写形式
说明:只转换s中出现的大写字母,不改变其它字符。返回指向s的指针。
注意事项:在Linux的编译器中,有可能会编译不通过。
替代函数:
#include<ctype.h>
inline char* strlwr( char* str )

char* orig = str;
// process the string
for ( ; *str != '\0 '; str++ )
*str = tolower(*str);
return orig;
参考技术A #include<stdio.h>
int main(void)

char a;
while((a=getchar())!='\n')
if(a>='a'&&a<='z')
printf("%c",a);
else if(a>='A'&&a<='Z')
printf("%c",a+32);

参考技术B #include<stdio.h>
#include<string.h>
int main()

char s[200];
gets(s);//scanf("%s",s);
strlwr(s);
char *p = s;
while(*p)

if(('a' > *p) || ('z' < *p))

int i = 0;
do

p[i] = p[i + 1];
while('\0' != p[i++]);

else

++p;


printf(s);
return 0;
本回答被提问者采纳

以上是关于C语言编写函数转换字符串大小写的主要内容,如果未能解决你的问题,请参考以下文章

C语言编写程序,将一个字符串中的大写字母转换为对应的小写字母,小写字母转换为对应的大写字母,并统计数

编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出。

ZZNUOJ_用C语言编写程序实现1718:大小写转换(附完整源码)

ZZNUOJ_用C语言编写程序实现1718:大小写转换(附完整源码)

输入一个字符串,只取其中的英文字母,全部转换成小写后输出。这个用C语言怎么编写?

编写函数,统计一个字符串中大写字母的数目 用c语言