私はC++プログラミングが初めてです。文字列と整数があり、それらを 1 つの char 配列にマージした後、それを分割して文字列と整数を取得したいと考えています。私はコードを作業しましたが、ほとんど機能します。唯一の問題は、文字列の最後にガベージが作成されることがあることです。このフォーラムを検索しましたが、適切な解決策が見つかりませんでした。私は何を間違っていますか?もっと簡単な解決策はありますか?前もって感謝します。これが私のコードです:
#include <iostream>
#include <fstream>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main() {
cout << "string: ";
char my_string[64];
cin >> my_string;
int i = 666;
char i_size[8];
sprintf( i_size, "%9d", i );
strcat( my_string, i_size );
cout << my_string << endl;
char temp1[9] = { 0 };
strncpy( temp1, my_string + ( strlen( my_string ) - 9 ), 9 );
int in = atoi( temp1 );
cout << "int = " << in << endl;
char temp2[strlen( my_string ) - 9];
strncpy( temp2, my_string, strlen( my_string ) - 9 );
cout << "string = " << temp2 << "|" << endl;
return 0;
}
出力は次のとおりです。
[corneliu@localhost prog-build]$ ./prog
string: e
e 666
int = 666
string = e|
[corneliu@localhost prog-build]$ ./prog
string: wewewewe
wewewewe 666
int = 666
string = wewewewe�@|
[corneliu@localhost prog-build]$