2019独角兽企业重金招聘Python工程师标准>>>

my site on github stupidgrass

helloworld之前言

hello world在编程界的名声是众所周知的,每个人在入门的时候都会接触到的两个单词。在c++中,当然也不能例外了。最为常用的方式就是如下:

#include <iostream>int main() {std::cout << "hello world" << std::endl;
}

就这样,hello world就成功的登上了控制台中,进入了人们的视野。

但就这样当大家对于hello world越来越熟悉的时候,往往也变得越来越“陌生”,对于它的存在成为了理所当然的事情。今天,突然想到这么个问题,是不是编程中的很多问题都能够简化成“hello world”的方式进行阐述呢?这一系列的文章的出现就是笔者想借用“hello world”的名声,来进行一次c++的旅行。当然,本人只是小菜一颗,只是不想将这种想法丢进垃圾桶,让它无声无息的发酵罢了。

让我们步入正题吧。


helloworld与字符串

helloworld是什么?在这么个问题之前,很容易想到的就是“字母”,“字符”,“一串字符”,简而言之“字符串”。一个编程语言要和人们的生活息息相关,就无法离开“字符串”这个媒介。那么在c++中,通过怎样的方式实现存储,读取,显示,查找等等功能的呢?

helloworld的定义

char *helloworld_c = "hello world"; // or char hellowrold_c[] = ...
std::string helloworld_str = "hello world";
std::vector<char> helloworld_vec = {'h','e','l','l','o','','w','o','r','l','d'} ;

这样helloworld就成功的在计算机的内存中有了自己的“家”了。现在是通过人为的方式进行定义的,如果我想交互式的输入自己输入helloworld呢?这也简单。

helloworld的读取

std::cin >> helloworld_c;
std::cin >> helloworld_str; // this way is better
char tmp;
while (cin >> tmp) {helloworld_vec.push_back(tmp);
}

在这里显而易见,通过string 的方式是最为简便的。对于vector想必也有挺多人带有些许的好奇之心吧。就好比是一个中空的管子,平时有一端是闭合的,有一端是开启的,当我们向其中赋值的时候,就相当于往里面扔东西,可以扔各种各样的东西,但为了能够方便以后的整理,往往先在这个管子上贴上标签,说明里面装什么东西,然后再往里面扔东西。比如这里是“char”。而string相当于从vector中独立出来的东东,专门面向字符串

helloworld的输出

std::cout << helloworld_c << std::endl;
std::cout << helloworld_str << std::endl;
for (vector<int>::iterator i=helloworld_vec.begin(); i != helloworld_vec.end(); ++i) {cout << *i;
}
std::cout << std::endl;
// or
for (auto c : helloworld_vec) { // new in c++11cout << c;
}
std::cout << std::endl;

这里的cin和cout就好比两把通向控制台的万能钥匙,对于常见的数据类型,(数值类型,字符串类型),甚至是自定义的类型,都能够通过cin和cout来进行数据的输入以及输出。在很大程度上简化了问题的复杂度。

转载于:https://my.oschina.net/grassyue/blog/164463

Hello world cpp之旅 - 字符串(1)相关推荐

  1. python身份证的秘密_Python算法之旅字符串游戏之身份证号的秘密

    最近在力扣(LeetCode)网闲逛,发现很多题目的官方题解都是用Python语言来描述的,这说明大家已经逐渐认识到Python语言描述算法的优越性:它语法简明,内置函数丰富,表述直截了当,可以用最简 ...

  2. Cpp / Hash 所得字符串转成 Hex 字符串。

    遇到的需求如下,将待明文 Hash 所得的结果转成 Hex 字符串.最开始没懂这条需求是什么意思,后来查阅资料之后终于弄到了,总结如下: 字符串中每个字节按照整型读取,将该值转成 16 进制数并转成字 ...

  3. Python算法之旅字符串游戏之无效的身份证

    出场人物介绍 小美:小学4年级学生,参加了学校的编程兴趣小组,已经了解了Python语言的基本语法,能够看懂一些简单的程序.她做事风风火火,对所有的事情都很好奇,喜欢打破砂锅问到底,是一个叫人又爱又恨 ...

  4. c++ 字符串去掉首尾空格_C++ 去掉字符串的首尾空格和全部空格

    #include #include using namespace std; //去掉收尾空格 string& ClearHeadTailSpace(string &str) { if ...

  5. c语言怎么进行字符串比较,c语言怎么进行字符串比较

    比较方法:1.bcmp(),比较字符串的前n个字节是否相等:2.strcmp(),区分大小写的比较字符串:3.stricmp(),不区分大小写的比较字符串:4.strncmp()或strnicmp() ...

  6. 浅显易懂 Makefile 入门 (05)— 字符串处理函数(patsubst、subst、strip、findstring、filter、filter-out、sort、word)

    1. 字符串函数格式 函数调用的格式如下: $(<function> <arguments>) 或者是 ${<function> <arguments> ...

  7. Jsoncpp 使用方法解析

    Jsoncpp是目前比较好用的开源Json解析库,现在总结一下它的使用方法,理解,以供以后查阅. 在引入Jsoncpp的时候我们看到Jsoncpp里边的常用的cpp文件,有json_reader.cp ...

  8. 网易技术干货 | 云信跨平台C++ SDK开发实战

    1. 序 言 2018年,Flutter Release正式发布,将移动端跨平台开发技术再一次推上风口浪尖.2019年5月,Flutter 1.5正式支持Web开发,而预告中正在开发的Flutter ...

  9. 【C++grammar】文件系统以及path类使用

    目录 1.文件系统概述 1.关于路径 2.如何将某个路径下的所有文件递归地找出来? 2.路径类及操作 1.path类的成员函数 2.path类的非成员函数 示例1:展示C++17中的path对象的用法 ...

最新文章

  1. 加密解密、食谱、新冠序列,各种有趣的开源项目Github上都有
  2. 石川es6课程---13-16、generator-认识生成器函数
  3. Python入门学习笔记11(静态方法、类方法与属性方法)
  4. 如何使用XML 配置的方式配置Spring?
  5. PHP 发送Email的几种方法
  6. 围棋棋盘怎么编程python_围_围是什么意思_围字怎么读_围的含义_围字组词-新东方在线字典...
  7. 从Qt4 迁移到Qt5 winEvent代替为nativeEvent
  8. C++中doulbe/float/int转为CString方法(转)
  9. 树莓派4b安装windows iot_树莓派4B基于python3安装opencv4全教程
  10. javascript模式 (3)——工厂模式和装饰模式
  11. java小游戏飞机大战,java飞机大战小游戏
  12. 数据库的几种去重方法总结
  13. VLAN隔离葵花宝典(一)
  14. 高纯度钨酸铜粉末/钨酸铁粉末/钨酸亚铁粉末/硫化铋粉末/铬酸铋粉末/氧化锆粉末/铬酸钡粉末
  15. Android第三方SDK集成 —— 极光推送
  16. windows html封装,怎样win7自带的sysprep封装系统
  17. 项目管理 | 如何正确的向领导汇报工作?
  18. WORD2003相关问题
  19. 解决 ArchLinux 下中文 Chinese 不能输入 couldnt input 的问题
  20. 树莓派配置无线网络(补充) 【for_wind】

热门文章

  1. win10系统要求配置_Windows 10最低系统配置要求
  2. linux boot efi分区 容量,解决Ubuntu上由于/boot容量不足引起的无法更新系统
  3. pandas python2_Python随笔 | Pandas入门(二)
  4. redis value最大值_Redis基础知识整理
  5. 快速学习 rollup 打包
  6. oracle not in 数组,慎用Oracle的not in (轉)
  7. excel如何把多张表合并成一个表_从产品经理到总监,就差一张高价值Excel表
  8. oracle log.xml分析,Oracle 11g Alert Log日志位置及参数
  9. pytorch 对抗样本_【天池大赛】通用目标检测的对抗攻击方法一览
  10. android kotlin log,Kotlin实现Log打印工具类