请教一个简单的C语言字符串问题

lishi_1991 2013-01-05 09:44:48
有三个 char *型变量,char *first = “123”;char *second = “234”;char *third = “345”;
还有一个char *型变量 char *final;能不能让 final[0] = first;
final[1] = second;
final[2] = third;
大概意思是就是这样 有办法吗?直接赋值的话得到结果是乱码
...全文
190 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin5161678 2013-01-05
  • 打赏
  • 举报
回复
char *final[3]
DaiwjDev 2013-01-05
  • 打赏
  • 举报
回复
引用 5 楼 turingo 的回复:
1、声明的时候用char*final[3]; 2、如果需要拷贝字符串的话,那么就需要用strcpy函数。
怎么做,貌似我有问题,举个爪!
DaiwjDev 2013-01-05
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <string.h>
typedef struct{
	char add[4];
}n;
n final[3];
void main()
{
	char first[4]={"123"};
	char second[4]={"456"};
	char third[4]={"789"};
	strcpy(final[0].add,first);
	strcpy(final[1].add,second);
	strcpy(final[2].add,third);
	printf("%s %s %s\n",final[0].add,final[1].add,final[2].add);
}// 123 456 789

DaiwjDev 2013-01-05
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <string.h>
typedef struct{
	char add[4];
}n;
n final[3];
void main()
{
	char first[4]={"123"};
	char second[4]={"456"};
	char third[4]={"789"};
	strcpy(final[0].add,first);
	strcpy(final[1].add,second);
	strcpy(final[2].add,third);
	prin
图灵狗 2013-01-05
  • 打赏
  • 举报
回复
1、声明的时候用char*final[3]; 2、如果需要拷贝字符串的话,那么就需要用strcpy函数。
东大坡居士 2013-01-05
  • 打赏
  • 举报
回复
引用 2 楼 lishi_1991 的回复:
确实是 得把char *final 改成char **final char *first; char *second; char *third; char *final[3]; int i = 0; char* IntToStr(char* buf, int m); first = (char *)malloc(sizeof(char) * 10); ……
可以
东大坡居士 2013-01-05
  • 打赏
  • 举报
回复
char *final改成char * final[]即可
lishi_1991 2013-01-05
  • 打赏
  • 举报
回复
确实是 得把char *final 改成char **final char *first; char *second; char *third; char *final[3]; int i = 0; char* IntToStr(char* buf, int m); first = (char *)malloc(sizeof(char) * 10); second = (char *)malloc(sizeof(char) * 10); third = (char *)malloc(sizeof(char) * 10); // final = (char *)malloc(sizeof(char) * 40); first = IntToStr(first,12); second = IntToStr(second,13); third = IntToStr(third,14); final[0] = first; final[1] = second; final[2] = third; for(i=0;i<3;i++) { printf("final[%d] = %s\n",i,*(final+i)); } return 0;
zhcosin 2013-01-05
  • 打赏
  • 举报
回复
char *final 改为 char **final 才可以。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧