user-0 提问: 数组与字符串合并

回复:
user: user-1
content: #include <stdio.h> #include <stdlib.h>  #define    LEN    64  int main(void) { 	int message1[3][3] = { { 1,0,0 },{ 0,0,0 },{ 0,0,0 } }; 	const char *message2 = "help"; 	//char *message = new char[100]; 	char *message = NULL; 	message = (char *)malloc(sizeof(char) * LEN); 	if (NULL == message) { 		fprintf(stderr, "malloc error: %s\n", strerror(errno)); 		return 1; 	} 	//memset(message, 0, 100); 	memset(message, 0, LEN); 	sprintf(message, "%s%d%d%d%d%d%d%d%d%d", 		message2, 		message1[0][0], message1[0][1], message1[0][2], 		message1[1][0], message1[1][1], message1[1][2], 		message1[2][0], message1[2][1], message1[2][2]); 	printf("%s", message);         free(message); 	return 0; } C语言中通过malloc/realloc/calloc来申请堆上的空间；

user: user-0
content: 引用 6 楼 zyzy577048814 的回复:[quote=引用 5 楼 jiht594 的回复:] #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h>  using namespace std;   int main () {     int message1[3][3] = {{1,0,0},{0,0,0},{0,0,0}};     const char *message2 = "help";     char *message = new char[100];     memset(message, 0, 100);     sprintf(message, "%s%d%d%d%d%d%d%d%d%d",             message2,             message1[0][0], message1[0][1], message1[0][2],             message1[1][0], message1[1][1], message1[1][2],             message1[2][0], message1[2][1], message1[2][2]);     cout << message << endl;     return 0 ; }  我把他修改成c语言怎么不对了，能帮我看一看吗？ int main() { 	int message1[3][3] = { { 1,0,0 },{ 0,0,0 },{ 0,0,0 } }; 	const char *message2 = "help"; 	//char *message = new char[100]; 	char *message = NULL; 	//memset(message, 0, 100); 	sprintf(message, "%s%d%d%d%d%d%d%d%d%d", 		message2, 		message1[0][0], message1[0][1], message1[0][2], 		message1[1][0], message1[1][1], message1[1][2], 		message1[2][0], message1[2][1], message1[2][2]); 	printf("%c", message); 	return 0; }[/quote] 可以了，我把 char *message = NULL;改成 char message[100]; 输出来了，不过这个sprintf得手工把数组一个一个打进去。要是数组大了就不太实用啊，要是能有for就好了！

user: user-0
content: 引用 5 楼 jiht594 的回复:#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h>  using namespace std;   int main () {     int message1[3][3] = {{1,0,0},{0,0,0},{0,0,0}};     const char *message2 = "help";     char *message = new char[100];     memset(message, 0, 100);     sprintf(message, "%s%d%d%d%d%d%d%d%d%d",             message2,             message1[0][0], message1[0][1], message1[0][2],             message1[1][0], message1[1][1], message1[1][2],             message1[2][0], message1[2][1], message1[2][2]);     cout << message << endl;     return 0 ; }  我把他修改成c语言怎么不对了，能帮我看一看吗？ int main() { 	int message1[3][3] = { { 1,0,0 },{ 0,0,0 },{ 0,0,0 } }; 	const char *message2 = "help"; 	//char *message = new char[100]; 	char *message = NULL; 	//memset(message, 0, 100); 	sprintf(message, "%s%d%d%d%d%d%d%d%d%d", 		message2, 		message1[0][0], message1[0][1], message1[0][2], 		message1[1][0], message1[1][1], message1[1][2], 		message1[2][0], message1[2][1], message1[2][2]); 	printf("%c", message); 	return 0; }

user: user-2
content: #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h>  using namespace std;   int main () {     int message1[3][3] = {{1,0,0},{0,0,0},{0,0,0}};     const char *message2 = "help";     char *message = new char[100];     memset(message, 0, 100);     sprintf(message, "%s%d%d%d%d%d%d%d%d%d",             message2,             message1[0][0], message1[0][1], message1[0][2],             message1[1][0], message1[1][1], message1[1][2],             message1[2][0], message1[2][1], message1[2][2]);     cout << message << endl;     return 0 ; }

user: user-0
content: 顶一下。有人知道吗？

user: user-3
content: 你这个效率略低。

user: user-0
content: 引用 9 楼 zhao4zhong1 的回复:狗尾续貂： #include <stdio.h> #include <stdlib.h> #include <string.h> #define    LEN    64 int main() {     int L,message1[3][3] = { { 1,0,0 },{ 0,0,0 },{ 0,0,0 } };     char *message2="help";     char *message = NULL,*p;     message = (char *)malloc(sizeof(char) * LEN);     if (NULL == message) {         fprintf(stderr, "malloc error: %s\n", strerror(errno));         return 1;     }     p=message;     L=sprintf(p,"%s",message2);p+=L;     for (int y=0;y<3;y++)     for (int x=0;x<3;x++) {         L=sprintf(p,"%d",message1[y][x]);p+=L;     }     printf("[%s]\n", message);     free(message);     return 0; } //[help100000000] //  嗯嗯，我中午写出来了，弄了个小封装，写成子函数了，不过还是谢谢啦！  #include <stdio.h> #include <stdlib.h>  #define    LEN    64 #define M 3 #define N 3 int get_message(char *message2, int message1[M][N]); int main(void) { 	 	int message1[M][N] = { { 1,0,0 },{ 0,0,0 },{ 0,0,0 } }; 	const char *message2 = "help"; 	message2=get_message(message2, message1); 	printf("%s", message2); 	return 0; }      int get_message(char *message2,int message1[M][N]) { 	int i, j; 	char *message = NULL; 	message = (char *)malloc(sizeof(char) * LEN); 	if (NULL == message) { 		fprintf(stderr, "malloc error: %s\n", strerror(errno)); 		return 1; 	} 	memset(message, 0, LEN); 	sprintf(message, "%s",message2); 	//printf("%s", message); 	for (i = 0;i < M;i++) 		for (j = 0;j < N;j++) 		{  			sprintf(message, "%s%d", 			message, 		    message1[i][j]); 		} 	//printf("%s", message); 	return message; 	free(message); }

user: user-3
content: 作为一个C程序员，对  scanf,sscanf,fscanf  printf,sprintf,fprintf 这类函数的用法，还是要做到“拳不离手，曲不离口”的。

user: user-3
content: 狗尾续貂： #include <stdio.h> #include <stdlib.h> #include <string.h> #define    LEN    64 int main() {     int L,message1[3][3] = { { 1,0,0 },{ 0,0,0 },{ 0,0,0 } };     char *message2="help";     char *message = NULL,*p;     message = (char *)malloc(sizeof(char) * LEN);     if (NULL == message) {         fprintf(stderr, "malloc error: %s\n", strerror(errno));         return 1;     }     p=message;     L=sprintf(p,"%s",message2);p+=L;     for (int y=0;y<3;y++)     for (int x=0;x<3;x++) {         L=sprintf(p,"%d",message1[y][x]);p+=L;     }     printf("[%s]\n", message);     free(message);     return 0; } //[help100000000] //

user: user-0
content: 引用 1 楼 user-4 的回复:你期望得到的结果是什么？期望得到“help100000000”

user: user-0
content: 期望得到“help100000000”

user: user-4
content: 你期望得到的结果是什么？