原题链接:C语言训练-大、小写问题
方法一:使用c语言头文件ctype.h库里的tolower函数把字符串大写转换成小写
程序结构:
自定义三个函数,一个输入字符串,一个处理字符串,一个输出处理之后的字符串,最后再主函数中调用这三个函数
参考代码:
#include <stdio.h> #include <string.h> #include <ctype.h> // 函数声明 void inputString(char *str, int size); void processString(char *str, int size); void outputString(char *str, int size); int main() { char str[100]; // 假设字符串的最大长度为100 int size = sizeof(str); // 传递字符串的大小给其他函数 // 输入字符串 inputString(str, size); // 处理字符串 processString(str, size); // 输出处理后的字符串 outputString(str, size); return 0; } // 输入字符串的函数 void inputString(char *str, int size) { printf("请输入一个字符串: "); fgets(str, size, stdin); // 去除换行符 str[strcspn(str, "\n")] = '\0'; /** * 函数原型:int strcspn(char* str,char* charset) * 功能:返回str中第一个和charset字符集中元素匹配的元素的位置。如果没有匹配到,就会返回str字符串的长度。 */ } // 处理字符串的函数 void processString(char *str, int size) { // 将字符串中的所有字符转换为大写 for (int i = 0; str[i]; i++) // 字符串是以空字符'\0'作为结尾的标识符,所以循环条件是str[i]不为空字符 { str[i] = tolower(str[i]); // toupper函数包含在ctype.h头文件中,用于将字符转换为小写 } } // 输出字符串的函数 void outputString(char *str, int size) { printf("处理后的字符串是: %s\n", str); }
方法二:自行设计代码实现大小写转换
解题思路:
由于大写字母与小写字母对应的ASCII码值相差32,所以可以把大写字母加上32转换成小写字母
程序结构:
自定义三个函数,一个输入字符串,一个处理字符串,一个输出处理之后的字符串,最后再主函数中调用这三个函数
参考代码:
#include <stdio.h> #include <string.h> void fun_input(char *str) { scanf("%[^\n]", str); // 除了回车键全部输入 } void fun_convert(char *str) { for (int i = 0; i < strlen(str); i++) { if (str[i] >= 'A' && str[i] <= 'Z') { str[i] += 32; } } } void fun_printf(char *str) { printf("%s", str); } int main() { char str[100]; fun_input(str); // 调用fun_input函数获取用户输入的字符串 fun_convert(str); // 调用fun_convert函数将字符串中的大写字母转换为小写字母 fun_printf(str); // 调用fun_printf函数并传递输入的字符串作为参数 return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复