C で文字列を文字配列に変換する
C で文字列を操作する場合、文字列を文字配列に変換するシナリオが発生することがあります。必要です。ただし、文字ポインター (char*) への変換とは異なり、固定サイズの文字配列 (char[]) に直接変換することを目的としています。
この変換を実現するには、次の方法を検討してください。
方法 1: strcpy と c_str() を使用する
string temp = "cat"; char tab2[1024]; strcpy(tab2, temp.c_str());
このメソッドは、strcpy 関数を利用して文字列を文字配列にコピーします。 c_str() は、文字列を null で終わる文字配列に変換します。
方法 2: strncpy と c_str() を使用する
安全性を高めるために、strncpy を使用して次のことを行うことができます。バッファ オーバーフローが発生しないようにします。
string temp = "cat"; char tab2[1024]; strncpy(tab2, temp.c_str(), sizeof(tab2)); tab2[sizeof(tab2) - 1] = 0;
strncpy は、指定された数の文字を配列にコピーし、最後の文字を null に設定します。
方法 3: New と c_str( )
string temp = "cat"; char *tab2 = new char [temp.length()+1]; strcpy(tab2, temp.c_str());
このメソッドは、文字配列にメモリを動的に割り当て、コピーに strcpy を使用します。
以上がC 文字列を文字配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。