利用指针任意给定一个字符串s(长度小于100),其中只包含大写字母“A—Z”和小写字母“a—z”。你的任务是把s中大写字母和小写字母分开,并分别存到指定的字符数组中。拆分后原字母顺序保持不变。本题要求用函数实现。
时间: 2024-05-10 20:19:36 浏览: 9
以下是一个实现该功能的函数示例:
```c
void splitString(char* s, char* upperCase, char* lowerCase) {
int i = 0, j = 0, k = 0;
while (s[i] != '\0') {
if (s[i] >= 'A' && s[i] <= 'Z') {
upperCase[j] = s[i];
j++;
} else if (s[i] >= 'a' && s[i] <= 'z') {
lowerCase[k] = s[i];
k++;
}
i++;
}
upperCase[j] = '\0';
lowerCase[k] = '\0';
}
```
该函数接受一个字符串指针 `s`,以及两个字符数组指针 `upperCase` 和 `lowerCase`,分别用于存放大写字母和小写字母。在函数内部,使用循环遍历字符串 `s` 中的每个字符,判断其是否为大写或小写字母,并将其分别存放到 `upperCase` 和 `lowerCase` 中。最后,在两个数组的末尾添加字符串终止符 `\0`,以保证字符串的正确性。
相关问题
使用指针,输入任意一个字符串,将其中的大写字母转换成小写字母
好的,可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
char *p = str;
while (*p != '\0') {
if (*p >= 'A' && *p <= 'Z') {
*p += 32; // 大写字母转换成小写字母
}
p++;
}
printf("转换后的字符串为:%s\n", str);
return 0;
}
```
输入任意一个字符串后,程序会遍历该字符串中的每个字符,如果是大写字母,则将其转换成小写字母。最后输出转换后的字符串。
c语言编程,使用指针,输入任意一个字符串,将其中的大写字母转换成小写字母
好的,使用指针操作可以更加灵活地处理字符串。以下是一个示例程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, i;
char *p;
printf("请输入一个字符串:");
gets(str); // 使用 gets 函数读入字符串,不建议使用此函数
len = strlen(str);
p = str;
for (i = 0; i < len; i++) {
if (*p >= 'A' && *p <= 'Z') { // 判断是否为大写字母
*p += 'a' - 'A'; // 转换为小写字母
}
p++;
}
printf("转换后的字符串为:%s\n", str);
return 0;
}
```
程序中使用指针 `p` 操作字符串,循环遍历字符串中的每个字符进行判断和转换。同样地,需要注意输入字符串的长度和非字母字符的情况。