原题链接: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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复