学习数据结构与算法到哈夫曼树编码时,存储的哈夫曼编码数据无法打印,因为我之定义了一个指向字符串数组的指针,在网上看到了通过字符串指针打印整个字符串数组的方法,记录一下,后面可能会用到!

1 定义一个字符串数组:

 char a[6] = "hello";

注意:这里实际存储时是“hello\0”,所以这个字符串数组中含有6个元素,其中“\0”是截止符,对我们打印输出起到重要的作用。

2 打印:

 char a[6] = "hello";char* p = a;while (p){cout << *p++ << endl;}

这种打印方式会报错,因为p是一个地址,地址++一直都是存在的,所以循环条件要替换成 *p,当 *p=“\0”时,因为‘\0’的ASCII码值为0,所以跳出循环。

3 改进打印方式

 char a[6] = "hello";char* p = a;while (*p){cout << *(p++);}

打印正确:

4 另一种打印方式:

 char a[6] = "hello";for (char* p = a; p[0]; ++p){cout << *p;}

打印正确:

这种打印方法的解释:
for循环中p[0]的值为p指向地址的存储的元素,也就是*p,这样的话就与3中的打印方式一样了。

参考:C++中怎么通过指针输出字符串?

参考:

C++通过字符串指针打印字符串相关推荐

  1. 字符串指针——指向字符串的指针

    转载自:字符串指针 字符串指针--指向字符串的指针 C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中,这在<C语言字符数组和字符串>中已经进行了详细讲解,这里不妨再来演示 ...

  2. 【关于如何输出字符串指针指向字符串地址】

    在研究字符串指针时发现一些与整形数组指针反常的现象,于是决定深入了解一下,以下是本人的拙见,欢迎大佬指正. #include<iostream> using namespace std; ...

  3. C++ 字符串指针与字符串数组

    在做面试100题中第21题时,发现char *astr="abcdefghijk\0";和char astr[]={"abcdefghijk"};有点区别,以前 ...

  4. C++ 字符串指针和字符串指针数组详解

    C++处理字符串有两种方式,即:指针方式和数组方式 数组方式:char a[] = "HelloWorld"; 指针方式:const char* s = "HelloWo ...

  5. 字符串指针与字符串数组

    C/C++中每一个字符串都以'\0'结尾,以方便找出字符串的尾部.但由于这个特点,会存在额外的开销,不小心导致越界的情况.如下面的代码: char str[10]; strcpy(str," ...

  6. 面试题--字符串指针与字符串数组的区别char* st=abc;与char* str[]=abc;的异同

    题1.   删除串中指定的字符(做此题时,千万不要开辟新空间,否则面试官可能认为你不适合做嵌入式开发) 参考代码: void delChar(char* str, char c) { int i, j ...

  7. C语言—字符串与字符数组,字符串数组与字符串指针的区别

    字符串与字符数组 字符串一定是一个char的数组,但char的数组未必是字符串.--以字符'\0'结尾的char数组就是一个字符串,但如果char数组没有以'\0'结尾,那么就不是一个字符串,只是普通 ...

  8. C和指针之二维字符串数组用指针数组、数组指针、二级指针打印

    1.问题 二位字符串数组用指针数组.数组指针.二级指针打印       2.测试代码 #include <stdio.h>int main() {char value[4][5] = {& ...

  9. printf打印字符串的时候可以printf(“%s“,buf);buf可以是字符串名或者指针

    printf打印字符串的时候可以printf("%s",buf);buf可以是字符串名或者指针 比如buf可以是  char  buf[10] 也可以是  char *buf[10 ...

最新文章

  1. php调用百度地图技术,调用百度地图
  2. 开关电源输出整流二极管
  3. golang 随机数 实现
  4. 【风控】作弊用户行为序列图片化
  5. [11] ADB 实用功能
  6. 北师大计算机组成原理答案,计算机组成原理(白中英)本科生试题库整理附答案[共21页].doc...
  7. TensorFlow基础篇(二)——tf.get_variable()和tf.get_variable_scope()
  8. 观察0号中断:除数为0
  9. Java 质数输出的经典算法题面试可以用
  10. 如何在 Mac 上使用“接力”回到上次离开的地方?
  11. 密码编码学初探——消息认证码
  12. 闲谈IPv6-我们在技术思维上需要作出改变(1)
  13. 嵌入式linux时间同步,ntpdate的交叉编译
  14. 域用户登录方法在计算机上不被允许,域管理员不允许本地交互式登陆的解决方法...
  15. [IOT安全][原创]钉钉智能指纹考勤机M1智能硬件漏洞挖掘(一)
  16. 那么普通却那么自信?浅谈元认知能力会怎样影响一个人的判断
  17. 指挥计算机工作的程序集,主互操作程序集(PIA)是否要求在计算机中安装Microsoft Office才能工作...
  18. 知人知面需知心——论人工智能技术在推荐系统中的应用
  19. 福大软工1816 ·软工之404NoteFound团队选题报告
  20. 我对软件测试行业的看法

热门文章

  1. django2.0调用银联支付接口实现银联支付
  2. 渐开线齿轮齿形误差和齿向误差
  3. mysql主键设置名称_MySQL的主键命名挺任性,就这么定了
  4. 决策树(Decision Tree)总结
  5. 用Python爬取王冰冰vlog弹幕并制作词云
  6. centos7杀掉进程_Centos常用命令,查看进程、杀死进程、启动进程等常用命令
  7. 被周鸿祎夸奖的闷骚型产品经理,究竟是如何做产品的?
  8. 24考研规划复习指导
  9. 黄河全貌,太震撼了!
  10. swapIDC主机管理软件云免签支付接口源码改造-云端状态查询接口