写函数去除字符串中包含的非字母字符(不包括空格),将小写字母转换成大写字母

本文介绍了一个C++编程任务,旨在去除字符串中的非字母字符(不包括空格)并把小写字母转换为大写。程序示例提供了实现这一功能的代码,输入和输出格式也在文中给出。

本人是个矿业方面的研究生,本着导师不管我,随便练练手的心态看看C++方面的程序设计什么的。代码一般都不怎么成熟。纯属写着玩。
题目内容:
编写函数去除字符串中包含的非字母字符(不包括空格),并将小写字母转换成大写字母。
注意,不在函数中输出。输入输出应在主函数中进行。

输入格式:
待转换的字符串,字符串间会包含空格,长度不超过200。

输出格式:
转换后的字符串

输入样例:
happy new year!

输出样例:
HAPPY NEW YEAR
程序如下:

#include<iostream>
using namespace std;
char chrstr(char a);
int main()
{
    int i=0,j=0,len=0,len2=0;char ch[200],chi[200];
    while((ch[i]=cin.get())!='\n')
    {   i++;    }
    ch[i]='\0';
    len=i-1;
    for(i=0;i<=len;i++)
    {
        if( int(ch[i]>=97) && int(ch[i]<=122) )
        {   chi[len2]=chrstr(ch[i]);len2++;}
        if( int(ch[i]==32))
        {   chi[len2]=ch[i]        ;len2++;}
        if( int(ch[i]>=65 && int(ch[i])<=90) )
        {   chi[len2]=ch[i]        ;len2++;}
    }
    chi[len2]='\0';
    for(i=0;i<len2;i++)
    {   cout<<chi[i];   }
    return 0;
}
char chrstr(char a)
{
    char b;
    b=cha
### C语言实现字符串并删除空格和回车的代码示例 以下是实现将字符串中的小写字母转换为大写字母,并删除字符串中的空格和回车的C语言代码示例: ```c #include <stdio.h> #include <ctype.h> #include <string.h> int main() { char str[100]; int i, j; printf("请输入字符串:"); fgets(str, sizeof(str), stdin); // 使用fgets读取字符串包括空格 // 去除字符串末尾可能存在的换行符 for (i = 0; str[i] != '\0'; i++) { if (str[i] == '\n') { str[i] = '\0'; break; } } // 转换小写字母,并删除空格和回车 for (i = 0, j = 0; str[i] != '\0'; i++) { if (str[i] >= 'a' && str[i] <= 'z') { // 判断是否为小写字母 str[j++] = str[i] - 32; // 转换为 } else if (str[i] != ' ' && str[i] != '\n') { // 空格和回车字符直接保留 str[j++] = str[i]; } } str[j] = '\0'; // 添加字符串结束符 printf("转换后的字符串:%s\n", str); return 0; } ``` 上述代码通过`fgets`函数读取包含空格字符串[^3],然后逐个字符检查。如果字符小写字母,则将其转换为大写字母;如果是空格或回车,则跳过该字符。最终输出的字符串包含转换后的大写字母和其他空格回车字符。 ### 代码说明 1. 使用`fgets`函数读取字符串,可以处理包含空格的输入。 2. 通过循环遍历字符串,判断每个字符是否为小写字母,如果是,则减去32将其转换为大写字母[^1]。 3. 在遍历过程中,跳过空格和回车字符,确保最终结果中包含这些字符。 4. 使用两个索引变量`i`和`j`分别表示输入字符串和输出字符串的位置,从而实现原地修改字符串。 ### 注意事项 - 输入字符串时,建议使用`fgets`而是`scanf`,因为`scanf`会忽略空格和换行符。 - 在处理字符串时,需要特别注意字符串结束符`\0`的正确位置,以避免出现未定义行为。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值