该程序将char转换为ASCII码
程序运行完美,但我不明白行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"));
}
答案 0 :(得分:4)
while (*p1)
cout << (int) *p1++ << ' ';
表示:
p1
指向的字符值与0不同(即'\0'
)
*p1
=取消引用指针p1
)int
,以便输出ASCII代码(数字而非字符)p1
以使其指向下一个字符答案 1 :(得分:1)
cout << (int) *p1++ << ' ';
下面:
p1
指向的字符将转换为int
并写入cout
后跟一个空格。p1
已提前指向下一个字符(这是p1++
所做的事情。)答案 2 :(得分:0)
这很容易:)
while(* p1)=&gt;只要p1指向的字节不为零.... cout&lt;&lt; (int)* p1 ++&lt;&lt; ''; =&GT; p1指向的print char,然后递增指针。将结果(char)转换为int并打印出来。
while(* p){do_somthing(); p ++;}是迭代c字符串的常用方法。