我是 C++ 编程的新手。我有一个字符串和一个整数,我想将它们合并到一个 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]$