繁体   English   中英

打印存储在C字符串中的字符的ASCII码-需要说明

[英]printing ASCII codes of characters stored in C-string - explanation needed

该程序将char转换为其ASCII代码。程序工作正常,但我不知道cout << (int) *p1++ << ' ';cout << (int) *p1++ << ' '; 作品。 特别是*p1++在此内部while循环中:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
void main ()
{
    char s[80];
    char *p1;
    do
    {
        p1 = s;

        cout << "Enter the string";
        gets(p1);
        while (*p1) 
        cout << (int) *p1++ << ' ';
        cout << '\n';
    }
    while (strcmp (s, "End"));
 }
while (*p1) 
    cout << (int) *p1++ << ' ';

手段:

  • p1指向字符值不等于0的字符(即'\\0'
    • 获得它指向的字符( *p1 =指针p1取消引用)
    • 将此字符转换为int以便输出ASCII码(用数字代替字符)
    • 刚打印的数字后的输出空间
    • 递增指针p1以使其指向下一个字符
cout << (int) *p1++ << ' ';

这里:

  1. p1指向的字符将转换为int并写入cout后跟一个空格。
  2. p1前进以指向下一个字符(这是p1++作用)。

这很容易:)

while(* p1)=>只要p1指向的字节不为零。...cout <<(int)* p1 ++ <<''; =>打印由p1指向的char并随后增加指针。 将结果(char)转换为int并打印。

而(* p){do_somthing(); p ++;}是一种遍历ac字符串的常用方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM