[英]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++ << ' ';
这里:
p1
指向的字符将转换为int
并写入cout
后跟一个空格。 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.