char* char int 和ASCII码

char可以直接转出ASCII码值

char ch = 'a';
int asc_value = ch;   //asc_value就是a的ASCII码值

如果是char*的话,需要做位移运算才能得到char* 的ASCII码值,

下面的代码可以得到string的每个字符的ASCII码值,但是不是string的ASCII码值

    string s = "cup";
    char ch[256];
    strcpy(ch,s.c_str());
    for(int i=0;i<strlen(ch);i++){
        int d = ch[i];
        qDebug()<<" project name :"<<d;
    }

如果想得到string的ASCII码值,则在上面的代码中进行位移运算,

    string s = "cup";
    char ch[256];
    strcpy(ch,s.c_str());
    int iAscii;
    for(int i=0;i<strlen(ch);i++){
        int d = ch[i];
        qDebug()<<" project name :"<<d;
        iAscii = iAscii << 8;
        iAscii = iAscii | d;
    }

上述代码即可实现获取字符串的ASCII码值

猜你喜欢

转载自blog.csdn.net/xi__q/article/details/80282733