C语言编程一个能完成大小写字符转换的小程序,编写函数proc2,把字符串的所有小写字符转换成大写字符
时间: 2024-05-14 20:20:02 浏览: 8
以下是一个简单的实现:
```c
#include <stdio.h>
void proc2(char *str) {
while (*str != '\0') {
if (*str >= 'a' && *str <= 'z') {
*str -= 32; // 将小写字母转换为大写字母,ASCII码中相差32
}
str++; // 指针指向下一个字符
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
proc2(str);
printf("转换后的字符串为:%s\n", str);
return 0;
}
```
程序的核心是 `proc2` 函数,它接受一个字符串指针作为参数,然后遍历字符串中的每一个字符,对于小写字母,将其转换为大写字母。在此过程中,指针不断向后移动,直到指向字符串的结尾符 `\0`。在 `main` 函数中,我们先输入一个字符串,然后调用 `proc2` 函数进行转换,最后输出转换后的字符串。
相关问题
编写一个函数proc2,把字符串的所有小写字符转换成大写字符。并在主函数中测试。用C语言实现
下面是一个实现该功能的示例程序,其中 `proc2()` 函数将输入的字符串中的小写字母转换成大写字母,然后返回修改后的字符串:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
char* proc2(char* str) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (islower(str[i])) { // 判断是否为小写字母
str[i] = toupper(str[i]); // 转换成大写字母
}
}
return str;
}
int main() {
char str[100];
printf("请输入一个字符串:\n");
fgets(str, 100, stdin);
printf("你输入的字符串是:%s\n", str);
printf("转换后的字符串是:%s\n", proc2(str));
return 0;
}
```
在上面的程序中,我们定义了一个 `proc2()` 函数,接收一个字符串作为参数,然后遍历字符串中的每个字符,如果是小写字母,则将其转换成大写字母。最后,返回修改后的字符串。
在主函数中,我们从标准输入读入一个字符串,并调用 `proc2()` 函数将其转换成全大写字母,并输出转换后的结果。
需要注意的是,`proc2()` 函数直接修改了输入的字符串,因此在调用函数时,需要传入一个可修改的字符数组。
编写一个函数proc2,把字符串中的数字字符保存到新串,并把新串复制给源串。在主函数中测试。用c语言实现
下面是一个实现该功能的示例程序,其中 `proc2()` 函数将输入的字符串中的数字字符保存到新串中,然后将新串复制给源串:
```c
#include <stdio.h>
#include <string.h>
char* proc2(char* str) {
char new_str[100] = {0};
int len = strlen(str);
int j = 0;
for (int i = 0; i < len; i++) {
if (str[i] >= '0' && str[i] <= '9') { // 判断是否为数字字符
new_str[j++] = str[i]; // 保存数字字符
}
}
strcpy(str, new_str); // 将新串复制给源串
return str;
}
int main() {
char str[100];
printf("请输入一个字符串:\n");
fgets(str, 100, stdin);
printf("你输入的字符串是:%s\n", str);
printf("处理后的字符串是:%s\n", proc2(str));
return 0;
}
```
在上面的程序中,我们定义了一个 `proc2()` 函数,接收一个字符串作为参数,然后遍历字符串中的每个字符,如果是数字字符,则将其保存到一个新的字符串中。最后,将新的字符串复制给源字符串。
在主函数中,我们从标准输入读入一个字符串,并调用 `proc2()` 函数将其处理成只包含数字字符的字符串,并输出处理后的结果。
需要注意的是,`proc2()` 函数直接修改了输入的字符串,因此在调用函数时,需要传入一个可修改的字符数组。