我們許多人遇到了錯誤‘cannot convert std::string to char[] or char* data type’。
例如:
Input : string s = "geeksforgeeks" ;
Output : char s[] = { 'g', 'e', 'e', 'k', 's', 'f', 'o',
'r', 'g', 'e', 'e', 'k', 's' } ;
Input : string s = "coding" ;
Output : char s[] = { 'c', 'o', 'd', 'i', 'n', 'g' } ;
一種方法是将字符串的内容複制到char數組。這可以借助c_str()和strcpy()函數來完成。
c_str()函數用于返回指向數組的指針,該數組包含以空終止的字符序列,該字符串表示字符串的當前值。
語法:
const char* c_str() const;
如果抛出異常,則字符串中沒有任何變化。但是,當我們需要查找或訪問各個元素時,可以使用strcpy()函數将其複制到char數組中。複制後,我們可以像使用簡單數組一樣使用它。
采用的char數組的長度不應小于輸入字符串的長度。
// CPP program to convert string
// to char array
#include <bits/stdc .h>
using namespace std;
// driver code
int main()
{
// assigning value to string s
string s = "geeksforgeeks";
int n = s.length();
// declaring character array
char char_array[n 1];
// copying the contents of the
// string to char array
strcpy(char_array, s.c_str());
for (int i = 0; i < n; i )
cout << char_array[i];
return 0;
}
輸出:
geeksforgeeks
另一種方法:
// CPP program to convert string
// to char array
#include <iostream>
#include <string.h>
using namespace std;
// driver code
int main()
{
// assigning value to string s
string s("geeksforgeeks");
// declaring character array : p
char p[s.length()];
int i;
for (i = 0; i < sizeof(p); i ) {
p[i] = s[i];
cout << p[i];
}
return 0;
}
輸出:
geeksforgeeks
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!