有个关于二维数组的问题,请各位大神帮忙
本帖最后由 changtai_0 于 2013-04-03 09:56:36 编辑
//设计要求有个字符串数组存储termid,每个id固定20位;二维数组 指针 字符串
#define TERMID_LEN20//termid的字节数
typedef char TERMSTATUS[TERMID_LEN+1];
//用 TERMSTATUS* 表示 二维字符串数组;
//有两个函数关联到
int func1(int termcount,TERMSTATUS* terminal_id,int seqid){
……
TERMSTATUS* termids;
(TERMSTATUS*)malloc(termcount*sizeof(TERMSTATUS))
formatalstr(terminal_id[0],TERMID_LEN,termids[0])
}
int formatalstr(char* value,int len,char* in){
sprintf(in,"%-*s",len,value); //这个地方传进来value=null
in[len]='\0';
return 0;
}
//使用过程
TERMSTATUS terminal_id[2]={"12345","67890"};
//在这个位置用formatalstr(terminal_id[0],TERMID_LEN,terminal_id[0])是成功的
func1(2,terminal_id,1);
/*小弟初次用c语言,数组指针概念还很模糊,请个位大神帮忙
谢谢大家,急用啊!!!!!!!!
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//设计要求有个字符串数组存储termid,每个id固定20位;
#define TERMID_LEN20//termid的字节数
typedef char TERMSTATUS[TERMID_LEN+1];
//用 TERMSTATUS* 表示 二维字符串数组;
//有两个函数关联到
int formatalstr(char* value,int len,char* in)
{
//用sprintf可以,但用strncpy更好。
strncpy(in,value, len);
in[len] = 0;
return 0;
}
int func1(int termcount,TERMSTATUS* terminal_id,int seqid){
TERMSTATUS* termids= (TERMSTATUS*)malloc(termcount*sizeof(TERMSTATUS));
for(int i = 0; i < termcount; ++i)
{
formatalstr(terminal_id[i],TERMID_LEN,termids[i]);
}
free(termids);
return 0;
}
int main()
{
//使用过程
TERMSTATUS terminal_id[2]={"12345","67890"};
//在这个位置用formatalstr(terminal_id[0],TERMID_LEN,terminal_id[0])是成功的
func1(2,terminal_id,1);
}
#include <stdio.h>
#include <stdlib.h>
//设计要求有个字符串数组存储termid,每个id固定20位;
#define TERMID_LEN20//termid的字节数
typedef char TERMSTATUS[TERMID_LEN+1];
//用 TERMSTATUS* 表示 二维字符串数组;
int formatalstr(char* value,int len,char* in){
sprintf(in,"%-*s",len,value); //这个地方传进来value=null
in[len]='\0';
return 0;
}
//有两个函数关联到
int func1(int termcount,TERMSTATUS* terminal_id,int seqid){
TERMSTATUS* termids = (TERMSTATUS*)malloc(termcount*sizeof(TERMSTATUS));
return formatalstr(terminal_id[0],TERMID_LEN,termids[0]);
}
int main() {
//使用过程
TERMSTATUS terminal_id[2]={"12345","67890"};
//在这个位置用formatalstr(terminal_id[0],TERMID_LEN,terminal_id[0])是成功的
func1(2,terminal_id,1);
return 0;
}