首字母大写——字符串

这篇文章介绍了如何使用C++编程语言,通过双指针方法,实现输入的一堆英文单词中每个单词首字母的大写转换,保持单词间的空格不变。

题目描述

给定一堆用空格隔开的英文单词,将每个单词的首字母改为大写后输出。

输入描述

一堆英文单词,每个单词不超过10个字符,且仅由小写字母组成;每两个单词之间用一个空格隔开,整个字符串的长度不超过1000。

输出描述

输出每个单词首字母大写后的结果,单词之间仍然是一个空格隔开,行末不允许有多余的空格。

样例1

输入

good good study

输出

Good Good Study

代码:

#include<iostream>
using namespace std;

int main(){
    string str;
    getline(cin,str);
    str+=' ';
    int i=0,j=0; //双指针,i标志单词首字符,j遍历指针
    while(i<str.size()||j<str.size()){
        while(str[j]!=' '&&j<str.size()) j++;
        str[i]-=32; //转大写
        i=++j;
    }
    str.erase(str.size()-1,1);
    cout<<str<<endl;

}

### 实现字符串首字母大写的方法 以下是几种常见编程语言中将字符串首字母转换为大写的实现方式: #### Java 中实现字符串首字母大写 Java 提供了多种方法来处理字符串。可以通过 `substring` 和 `toUpperCase` 方法组合来完成该功能。 ```java public class Main { public static void main(String[] args) { String input = "hello world"; System.out.println(capitalizeFirstLetter(input)); } public static String capitalizeFirstLetter(String str) { if (str == null || str.isEmpty()) { return str; } return Character.toUpperCase(str.charAt(0)) + str.substring(1); } } ``` 上述代码片段展示了如何通过截取字符串的第一位并将其转为大写,再拼接剩余部分的方式实现目标[^1]。 --- #### C 语言中实现字符串首字母大写 C 语言中可以利用指针遍历字符串,并针对个字符调用 `toupper` 函数进行大小写转换。 ```c #include <stdio.h> #include <ctype.h> void upfst(char *str) { if (*str != '\0') { // 如果字符串不为空 *str = toupper((unsigned char)*str); // 将第一个字符转为大写 } } int main() { char text[100]; printf("Enter a string: "); fgets(text, sizeof(text), stdin); upfst(text); printf("Modified string: %s\n", text); return 0; } ``` 这段程序定义了一个名为 `upfst` 的函数用于修改输入字符串的第一个字符为其对应的大写字母形式[^2]。 --- #### Python 中实现字符串首字母大写 Python 内置有专门用来改变字符串首字母大小写的函数——`capitalize()` 或者手动构建逻辑。 ```python def capitalize_first_letter(s): if not s: return s return s[0].upper() + s[1:] input_str = "hello python" output_str = capitalize_first_letter(input_str) print(output_str) ``` 此脚本同样遵循先判断字符串是否有效,随后提取位字符执行 `.upper()` 转换最后重新组装的原则[^3]。 --- #### Go 语言中实现字符串首字母大写 Go 也支持类似的字符串操作模式,下面是一个简单的例子展示怎样让字符串开头变成大写状态。 ```go package main import ( "fmt" "strings" ) func capitalizeFirstLetter(s string) string { if len(s) == 0 { return s } r := []rune(s) r[0] = unicode.ToUpper(r[0]) return string(r) } func main() { str := "golang is powerful." fmt.Println(capitalizeFirstLetter(str)) } ``` 这里采用了 rune 类型数组的形式以便于处理可能存在的多字节 Unicode 字符情况下的正确性问题[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值