cout输出char字符串_神奇的字符串!

本文介绍了C++中将数字转换为字符串处理的便利性,通过ASCII码轻松获取数字的每位,并展示了如何使用循环来操作字符串,解决复杂的字符串格式输出问题。强调理解ASCII码和掌握字符串控制格式函数在字符编程中的重要性。
摘要由CSDN通过智能技术生成

点击蓝字

关注我们

导语

在c++中字符串,可谓至关重要的一员。然而也许因为觉得字符串过于简单而忽视。今天,我想关于字符串做一个比较有用的小技巧归纳。也希望,这些小技巧可以真正帮助到大家的c++学习。废话不多说,走起78aec6620877d659d9a5862e97a210c4.png。!!!

1a1bb2a53b7a8f564c9df4b404ec0786.png

Q1

数,就是数吗?

@???@3f9338f7fb50bccaa78503e7dde73ba2.png,你也许会疑惑,数如果不是数,那还是什么?当然,在任何时候一提到数,我们总想到int  或 double。但让我们看一道例题。

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

如果这个数是这样呢?

c2993e23fbe28edc8597e20914672e0f.png

这个时候我想你肯定不会在想到 int 了吧。如果数更大,long long恐怕都无力回天了。其实一个数可以当作一串字符。我想,如果对一个数较大输出各个位数,应该是一件比较麻烦的事。但对作为字符串的“数”输出各个位数,就索引一下,可以说so easy!而且因为ASCII码,从‘7’到7只需要下面操作即可:

int('7'-'0');

下面是上述例题代码:

#includeusing namespace std;void pinYin(int a) {  switch (a) {  case 0:cout << "ling";break;  case 1:cout << "yi";break;  case 2:cout << "er";break;  case 3:cout << "san";break;  case 4:cout << "si";break;  case 5:cout << "wu";break;  case 6:cout << "liu";break;  case 7:cout << "qi";break;  case 8:cout << "ba";break;  case 9:cout << "jiu";break;  }}int main(){  char a[101];  cin >> a;  int sum = 0;  int i = 0;  while (a[i] != '\0')  {    sum += a[i] - '0';    i++;  }  int b[11];  int j = 0;  if (sum == 0)  {    pinYin(0);    return 0;  }  while (sum != 0)  {    b[j] = sum % 10;    sum = sum / 10;    j++;  }  for (i = j - 1;i > 0;--i)  {    pinYin(b[i]);    cout << " ";  }  pinYin(b[0]);  return 0;}

Q2

用循环玩转字符串

也许刚开始接触循环时,是你被循环给玩坏了吧。说实话,现如今面对两重以上的循环我依旧难以理清思路。不说了,懂的都懂2256cd6abe3807713947ac1fd54f6bfe.png

来看一道例题:

c77a061411d09d0916819f43d5059604.png

这是我最近接触过的一个题目,说实话输出效果很好,但操作起来确实有点晕。我们还是先分析一下这个问题。显然这个图形上面与与下面是两个大循环。在每一个大循环中每一行都应该对应一次循环。而对每一行输出空格与字母也对应一次循环。也就是说两个循环套循环。接下来重点需要考虑的就是,空格的个数了。其实从上到下,空格的个数的规律还是比较明显的。这样,分析完后,代码也就很快出来了。(参考代码中的注释)。

68613491d706512da2c1984b9086c8f8.png
#include using namespace std;int main(){  char in;  cin >> in;//输入大写字符  int i ,j;  int line = in - 'A';//由ASCII码获取行数  //上面的主体  for (i = 0;i <= line;i++) {    for (j = line - i;j > 0;j--)cout << "  ";//管理两个空格的输出    for (j = 1;j <= 2 * i + 1;j++)cout << ' ' << char(i + 'A');//管理字母输出    cout << endl;//换行  }  //下面的主体  for (i = line;i >0;i--) {    for (j = 0;j <=line-i;j++)cout << "  ";//管理两个空格的输出    for (j = 1;j <= 2 * i - 1;j++)cout << ' ' << char(i -1+ 'A');//管理字母输出    cout << endl;//换行  }  //可以对照上面的与下面的代码。寻找增与减的关系。}

结语

总而言之,字符一定要牢记ASCII码以及控制格式的函数的运用。字符作为编程中的重中之重,更应该被我们有意识地去关注。

今天就到这里吧,谢谢大家关注。

5eff4b1776dd42196bc08c0a69e2264b.png+在看d868b8bfe80ff5c91e46356a8bddbe5f.png

最后送大家一首歌27ddf85cdb6971aff942a69e07718419.png

我们都是平凡之人,平凡地生活在大地上,去创造属于自己的不凡!!

6007d274db5799c963c4a6a8e16645b9.png

扫码关注我们

微信号|赤子孤独

哔哩哔哩|赤子孤独

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值