c++字符串拼接, 整數和字符串的轉換,string, const char*, char[]類型之間的轉換


1. string字符串拼接

a. 拼接char指針(C - String)類型的字符串, 可以指定長度

如果沒有指定長度,拼接C - String的起始位置到'\0'的位置

char a[] = { 'a', 'b', 'c', 'd', '\0'};
const char *b = "wangjing";
s.append(a);
s.append(b);
s.append(a, 3);

b. 拼接string類型的字符串

string c = "helloworld";
s.append(c);

c. 拼接字符類型:第一個參數用於指定拼接該字符的個數

char ch = 'm';
s.append(2, ch);

2. 整數類型和字符串類型之間的轉換

a. 整數類型轉字符串類型

方法一:使用_itoa_s(int integer, const char* target, int scale)

第一個參數:需要轉換成整形的數;第二個參數:轉換后存儲的地址;第三個參數:采用的進制

會自動在char* 后面加上'\0',所以可以直接輸出結果

int main() {
    char numtochar[20];
    _itoa_s(234, numtochar, 10);
    cout << numtochar;
}

方法二:采用sprintf_s(const char* target, '%d', int integer)字符串格式化函數

第一個參數,存儲的目的地址,第二個參數:轉換為整形,第三個參數:需要轉換成整形的數

int main() {
    char numtochar[20];
    sprintf_s(numtochar, "%d", 234);
    cout << numtochar;
}

b. 字符串類型轉整數

atio(const char* charnumber)

int main() {
    char numtochar[20] = { '1', '3', '5', '7'};
    cout << atoi(numtochar);
}

 3. const char *,string,char[]類型之間的轉換

注:對於string中第k個字符,可以使用string[k]和string.at[k]來訪問

a. string 轉 const char*

方法一:使用data()函數

int main() {
    string m = "2342";
    const char* p = m.data();
    int k = 0;
    while (p[k] != NULL) {
        cout << p[k] << ",";
        k++;
    }
}

方法二:使用c_str()函數

int main() {
    string m = "2342";
    const char* p = m.c_str();
    int k = 0;
    while (p[k] != NULL) {
        cout << p[k] << ",";
        k++;
    }
    // 直接使用cout << p更加簡單方便
}

b. string轉char[](string 轉char *,不需要指定const char類型)

調用string的copy函數:第一個參數為數組對象,第二個參數為長度,第三個參數為起始位置。

int main() {
    string m = "2342";
    char p[50] = { 0 };
    m.copy(p, 4, 0);
    int k = 0;
    while (p[k] != NULL) {
        cout << p[k] << ",";
        k++;
    }
    // 直接使用cout << p更加簡單方便
}

初始化一個數組時,char類型,默認為'\0',但是需要至少指定第一個,否則認為沒有初始化。int類型默認為0

增強版:采用動態內存分配可以減小程序需要的內存空間

int main() {
    string m = "2342";
    int len = m.length() + 1;
    char *p = new char[len];
    m.copy(p, 4, 0);
    p[len - 1] = '\0';
    cout << p;
    delete[] p;
    // 直接使用cout << p更加簡單方便
}

 c char[]和char *轉string

直接賦值即可。

int main() {
    const char *p = "wang";
    const char q[] = "helloworld";
    string a = p;
    string b = q;
    cout << a;
    cout << b;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM