用c语言写一个程序由用户输入字符串。编辑程序将其中大写字符取出放入数组c中,利用指针完成。
时间: 2023-06-12 20:07:42 浏览: 84
以下是用 C 语言实现的程序,可以实现由用户输入字符串,将其中大写字符取出并放入数组 c 中:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN + 1];
char c[MAX_LEN + 1];
char *p = c;
int i, j = 0;
printf("请输入字符串:");
fgets(str, sizeof(str), stdin);
for (i = 0; str[i] != '\0'; i++) {
if (isupper(str[i])) {
*(p++) = str[i];
j++;
}
}
printf("大写字符个数:%d\n", j);
printf("大写字符为:");
for (i = 0; i < j; i++) {
printf("%c ", c[i]);
}
printf("\n");
return 0;
}
```
程序中使用了 `isupper()` 函数判断一个字符是否为大写字符,然后将大写字符存入数组 c 中,最后输出大写字符的个数和大写字符。指针变量 p 指向数组 c 的首地址,每存入一个字符,指针 p 向后移动一位,保证每次存入的字符都存入数组 c 的下一个位置。
相关问题
用c语言输入一个字符串,统计26个大写字母各自出现的次数,并输出,要求利用指针完成上述功能
好的,下面是代码实现:
```c
#include <stdio.h>
#include <ctype.h>
void countLetters(char *str, int *count) {
while (*str) {
if (isupper(*str)) {
int index = *str - 'A';
*(count + index) += 1;
}
str++;
}
}
int main() {
char str[100];
int count[26] = {0};
printf("请输入一个字符串:");
fgets(str, 100, stdin);
countLetters(str, count);
printf("大写字母出现的次数:\n");
for (int i = 0; i < 26; i++) {
printf("%c: %d\n", 'A' + i, *(count + i));
}
return 0;
}
```
代码中,`countLetters` 函数用于统计字符串中大写字母出现的次数,接收两个参数,第一个为指向字符串的指针,第二个为指向长度为 26 的数组的指针。在函数中,利用 `isupper` 函数判断字符是否为大写字母,如果是,则计算其在数组中对应的下标,并将对应的值加 1。
在 `main` 函数中,首先定义了一个长度为 100 的字符数组 `str` 和一个长度为 26 的整型数组 `count`,并初始化为 0。然后使用 `fgets` 函数从标准输入中读取字符串。
接着调用 `countLetters` 函数统计大写字母出现的次数,并将结果存储在数组 `count` 中。最后使用循环遍历数组 `count`,输出大写字母出现的次数。
注意,在输出字母时,需要将对应的 ASCII 码转换为字符。
c语言编程:(使用指针)输入任意一个字符串,将其中的大写字母转换成小写字母
好的,下面是使用指针实现将字符串中的大写字母转换成小写字母的c语言代码:
```c
#include <stdio.h>
void to_lower(char *str) {
while (*str != '\0') {
if (*str >= 'A' && *str <= 'Z') {
*str += 'a' - 'A';
}
str++;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
to_lower(str);
printf("转换后的字符串为:%s\n", str);
return 0;
}
```
代码的思路是遍历输入的字符串,如果当前字符是大写字母,则将其转换成小写字母。其中使用了指针来遍历字符串。