C语言用指针【问题描述】输入一个字符串,将这个字符串中的大写英文字母除去,输出剩余的字符组成的字符串。 【输出形式】输出除去大写英文字母的剩余字符串 【样例输入】Hello, World! 【样例输出】ello, orld!
时间: 2023-12-02 12:02:54 浏览: 62
可以使用指针遍历字符串中的每一个字符,判断是否为大写字母,如果不是则将其拷贝到新的字符串中。最后输出新的字符串即可。下面是一份示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100], new_str[100];
char *p = str, *q = new_str;
printf("请输入一个字符串:");
scanf("%s", str);
while (*p) {
if (!isupper(*p)) {
*q++ = *p;
}
p++;
}
*q = '\0';
printf("新的字符串为:%s\n", new_str);
return 0;
}
```
程序中用到了两个指针 `p` 和 `q`,分别指向原字符串和新字符串。在遍历原字符串时,如果当前字符不是大写字母,则将其拷贝到新字符串中,然后将 `q` 指针后移一位,以便下一次拷贝。最后,在新字符串的结尾加上一个空字符,以表示字符串的结束。
相关问题
C语言用指针【问题描述】输入一个字符串,将这个字符串中的大写英文字母除去,输出剩余的字符组成的字符串。
你可以用指针来遍历字符串中的每个字符,然后判断每个字符是否为大写字母,如果不是就将其加入到新的字符串中。具体实现可以参考下面的代码:
```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 语言程序代码:
```c
#include <stdio.h>
void remove_uppercase(char *str) {
char *p = str;
while (*p != '\0') {
if (*p >= 'A' && *p <= 'Z') {
char *q = p;
while (*q != '\0') {
*q = *(q + 1);
q++;
}
} else {
p++;
}
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
remove_uppercase(str);
printf("除去大写字母后的字符串是:%s\n", str);
return 0;
}
```
程序中的 `remove_uppercase` 函数用于去除输入字符串中的大写英文字母。它采用两个指针 `p` 和 `q`,其中 `p` 用于遍历字符串中的每个字符,如果当前字符是大写英文字母,就用 `q` 指针从当前位置开始,将后面的字符依次往前移动一个位置,最终将这个字符删除。如果当前字符不是大写英文字母,就继续遍历下一个字符。
阅读全文