题目要求输入一个字符串,将其中的大写英文字母除去,输出剩余的字符组成的字符串。(要求用指针做)
时间: 2023-06-05 17:09:02 浏览: 75
答案如下:
首先定义一个函数,接收一个字符串指针作为参数:
```c
void removeUpper(char *str) {
int i = 0, j = 0;
while(str[i] != '\0') {
if(str[i] >= 'a' && str[i] <= 'z') {
str[j] = str[i];
j++;
}
i++;
}
str[j] = '\0';
}
```
函数中使用两个指针 i 和 j,分别指向字符串的第一个字符和数组开头。
循环判断 i 所指向的字符是否为大写字母,如果不是则将其复制到 j 所指向的位置,并将 j 向后移动一个位置。
最后在 j 的位置添加一个字符串结束符 '\0',以确保字符串正确结束。
使用时调用该函数即可:
```c
#include <stdio.h>
int main() {
char str[100];
printf("输入字符串:");
scanf("%s", str);
removeUpper(str);
printf("剩余字符:%s", str);
return 0;
}
```
以上代码可以实现要求的功能,同时也符合题目要求使用指针操作。
相关问题
用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` 指针从当前位置开始,将后面的字符依次往前移动一个位置,最终将这个字符删除。如果当前字符不是大写英文字母,就继续遍历下一个字符。
c语言题目要求输入一个字符串,将其中的大写英文字母除去,输出剩余的字符组成的字符串。(要求用指针做)
可以使用指针遍历字符串的每一个字符,判断是否为大写字母,如果不是则将其存储到新的字符串中。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
void remove_uppercase(char* str)
{
char result[100]; // 存储结果的字符串
char* p = str; // 指向原字符串的指针
char* q = result; // 指向结果字符串的指针
while (*p != '\0') // 遍历原字符串
{
if (*p < 'A' || *p > 'Z') // 如果当前字符不是大写字母
{
*q = *p; // 将其存储到结果字符串中
q++; // 指向结果字符串的下一个位置
}
p++; // 指向原字符串的下一个位置
}
*q = '\0'; // 在结果字符串的末尾添加结束符
printf("Result: %s\n", result); // 输出结果字符串
}
int main()
{
char str[100];
printf("Please input a string: ");
scanf("%s", str);
remove_uppercase(str);
return 0;
}
```
注意,如果使用 `scanf("%s", str)` 读取字符串,那么输入的字符串中不能包含空格,否则只会读取第一个单词。如果需要读取包含空格的字符串,可以使用 `fgets()` 函数。
阅读全文