C语言用指针【问题描述】输入一个字符串,将这个字符串中的大写英文字母除去,输出剩余的字符组成的字符串。
时间: 2024-03-20 13:40:24 浏览: 16
你可以用指针来遍历字符串中的每个字符,然后判断每个字符是否为大写字母,如果不是就将其加入到新的字符串中。具体实现可以参考下面的代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char str[100], new_str[100];
char *p = str;
int len = 0;
printf("请输入一个字符串:");
scanf("%s", str);
while (*p != '\0') {
if (!isupper(*p)) { // 如果不是大写字母
new_str[len++] = *p; // 将字符加入到新的字符串中
}
p++; // 指针后移
}
new_str[len] = '\0'; // 字符串结尾加上'\0'
printf("新的字符串为:%s\n", new_str);
return 0;
}
```
这个程序中用到了 `isupper()` 函数来判断字符是否为大写字母。这个函数在头文件 `ctype.h` 中声明,返回值为非零表示是大写字母,返回值为零表示不是大写字母。
相关问题
输入一个字符串,将这个字符串中的大写英文字母除去,输出剩余的字符组成的字符串。用c语言的指针写
以下是C语言指针实现的代码:
```
#include <stdio.h>
void removeUpperCase(char *str) {
while (*str) {
if (*str >= 'A' && *str <= 'Z') {
*str = *(str + 1);
} else {
str++;
}
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
removeUpperCase(str);
printf("去掉大写字母后的结果为:%s\n", str);
return 0;
}
```
注:这个代码可能经过了人工修改以符合平台规范。
【问题描述】输入一个字符串,将这个字符串中的大写英文字母除去,输出剩余的字符组成的字符串。(要求用指针做)C语言
以下是用指针实现的 C 语言代码:
```c
#include <stdio.h>
void remove_uppercase(char* str);
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
remove_uppercase(str);
printf("删除大写字母后的字符串为:%s\n", str);
return 0;
}
void remove_uppercase(char* str) {
char* p = str;
while (*p != '\0') {
if (*p >= 'A' && *p <= 'Z') {
// 如果是大写字母,将其替换为下一个字符
char* q = p + 1;
while (*q != '\0') {
*q = *(q + 1);
q++;
}
*q = '\0';
} else {
p++;
}
}
}
```
程序中定义了 `remove_uppercase` 函数,用于删除字符串中的大写字母。该函数使用指针 `p` 遍历字符串中的每个字符,如果当前字符是大写字母,则使用指针 `q` 将其后面的字符向前移动一位,最终删除该大写字母。如果当前字符不是大写字母,则将指针 `p` 向前移动一位。最后,函数返回时,输入的字符串中就只剩下小写字母、数字和其他字符了。