如何大写第一个字母
How to upper-case first letter
如何编写一个C程序,读取您的名字和姓氏,然后将它们转换为大写和小写字母。。。我知道大写字母和小写字母的用法,但不知道名字和姓氏的用法。。有什么建议吗?。。。
#include<iostream>
#include<string.h>
using namespace std;
int i;
char s[255];
int main()
{
cin.get(s,255,'n');
int l=strlen(s);
for(i=0;i<l;i++)
......................................
cout<<s; cin.get();
cin.get();
return 0;
}
您可以将名字和姓氏直接读取到std::string
的s中。没有理由自己管理缓冲区,也没有理由猜测缓冲区的大小
std::string first, last;
// Read in the first and last name.
std::cin >> first >> last;
您需要根据自己的要求将字符串转换为大写/小写。这可以使用C++标准库中提供的std::toupper
和std::tolower
来完成。只要包括<cctype>
,它们就可用。有几种方法可以做到这一点,但一种简单的方法是将整个字符串转换为小写,然后将第一个字符转换为大写。
// set all characters to lowercase
std::transform(str.begin(), str.end(), str.begin(), std::tolower);
// Set the first character to upper case.
str[0] = static_cast<std::string::value_type>(toupper(str[0]));
把这些放在一起,你会得到一个看起来有点像的东西
#include <iostream>
#include <string>
#include <cctype>
void capitalize(std::string& str)
{
// only convert if the string is not empty
if (str.size())
{
// set all characters to lowercase
std::transform(str.begin(), str.end(), str.begin(), std::tolower);
// Set the first character to upper case.
str[0] = static_cast<std::string::value_type>(toupper(str[0]));
}
}
int main()
{
std::string first, last;
// Read in the first and last name.
std::cin >> first >> last;
// let's capialize them.
capitalize(first);
capitalize(last);
// Send them to the console!
std::cout << first << " " << last << std::endl;
}
注意:包含像using namespace std;
这样的语句被认为是不好的形式,因为它将std
命名空间中的所有内容都拉入当前范围。尽量避免。如果你的教授/老师/导师使用它,他们应该受到惩罚,并被迫观看电影《黑客》,直到时间结束。
由于您使用的是C++,因此应该使用std::string
而不是char
数组,而getline()
正是您想要的。
#include <iostream>
#include <string>
int main()
{
std::string first, last;
while (std::getline(cin, first, ' '))
{
std::getline(cin, last);
//Convert to upper, lower, whatever
}
}
如果每次运行只想得到一组输入,那么可以省略循环。getline()
的第三个参数是一个分隔符,它将告诉函数在到达该字符时停止读取。默认情况下,它是n
,因此如果您想阅读该行的其余部分,则不需要包含它。
相关文章:
- 获取向量C++中第一个值和最后一个值的和
- 有没有一种"cleaner"的方法可以在指向基的指针向量中找到派生类的第一个实例?
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 如何在创建自定义迭代器时获得 std::p air 的第一个和第二个?
- 如何实现 Front() 方法以返回模板化双向链表C++的第一个元素?
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- "main"函数堆栈中的对象在第一个任务运行时被覆盖 (FreeRTOS)
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- C 如何在字符串中大写每个句子/行的第一个单词
- 大写每个句子中的第一个单词
- 如何将文本从一个文件复制到另一个文件,然后将文本字符串的第一个字母转换为大写
- 第一个字母大写,其余字母小写
- 如何返回第一个字母大写的单词
- 如何大写第一个字母
- 将每个单词的第一个字符大写-帮助查找我的错误
- 将字符串中的第一个字母转换为大写字母
- 如何将单词的第一个字母大写