指针编写函数实现字符数组中的小写字母转成大写字母,并输出转换后的结果
时间: 2024-03-20 20:43:02 浏览: 61
好的,可以使用如下的代码实现:
```c
#include <stdio.h>
#include <ctype.h>
void toUpper(char *str) {
while (*str != '\0') {
if (islower(*str)) {
*str = toupper(*str);
}
str++;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
toUpper(str);
printf("转换后的字符串为:%s", str);
return 0;
}
```
这里使用了指针编写函数 `toUpper`,它接收一个字符指针作为参数,表示要转换的字符串。在函数中,我们使用了 `islower` 函数判断当前字符是否为小写字母,如果是,就使用 `toupper` 函数将其转换为大写字母。最后,在 `main` 函数中,我们读入一个字符串,调用 `toUpper` 函数进行转换,并输出转换后的结果。
相关问题
C语言中当不知道要输把用户输入的一串字符中的小写字母转换成大写字母并逆序输出。 输入 输入不超过100个的小写字母,用空格分开。 输出 输出对应的大写字母,用空格分开,并逆序输出。入到数组中几个元素时,这么处理
在C语言中,你可以通过以下步骤将用户输入的小写字母转换为大写字母并逆序输出:
1. **获取用户输入**:
首先,你需要使用`scanf()`函数从用户那里读取输入的一串字符。假设我们用`input[100]`作为存储字符串的数组,然后使用`fgets()`代替`scanf()`以防遇到空格。
```c
char input[101];
fgets(input, sizeof(input), stdin);
```
2. **大小写字母转换**:
使用`toupper()`函数将所有小写字母转换为大写字母。由于需要保留空格,我们需要遍历数组,并只对字母字符进行转换。
```c
for (int i = 0; i < strlen(input); i++) {
if (isalpha(input[i])) { // 检查是否为字母
input[i] = toupper(input[i]);
}
}
```
3. **逆序数组**:
创建一个新的指针`start`指向数组开头,另一个指针`end`指向结尾,然后交换它们所指向的字符直到相遇。
```c
char *start = input;
char *end = input + strlen(input) - 1;
while (start < end) {
char temp = *start;
*start++ = *end;
*end-- = temp;
}
```
4. **输出结果**:
最后,打印逆序后的字符串。由于数组已包含空格,直接输出即可。
```c
puts(input);
```
完整的代码示例:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char input[101];
fgets(input, sizeof(input), stdin);
for (int i = 0; i < strlen(input); i++) {
if (isalpha(input[i])) {
input[i] = toupper(input[i]);
}
}
char *start = input;
char *end = input + strlen(input) - 1;
while (start < end) {
char temp = *start;
*start++ = *end;
*end-- = temp;
}
puts(input);
return 0;
}
```
编写一个自定义函数(指针做函数参数),将字符串中的小写字母转换为大写字母,在主函数中输入字符串调用自定义函数并输出结果
以下是一个将字符串中的小写字母转换为大写字母的自定义函数的示例代码:
```c
#include <stdio.h>
#include <ctype.h>
void convertToUpper(char *str) {
int i = 0;
while(str[i]) {
str[i] = toupper(str[i]); // 使用 toupper 函数将小写字母转换为大写字母
i++;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin); // 使用 fgets 函数输入字符串
convertToUpper(str); // 调用自定义函数将小写字母转换为大写字母
printf("转换后的字符串为:%s", str);
return 0;
}
```
在这个示例代码中,我们使用了 `toupper` 函数将字符串中的小写字母转换为大写字母。同时,我们使用了 `fgets` 函数输入字符串,可以读入包含空格的字符串。
阅读全文