C语言 从数组中吧字符串提取出来另外分别储存

比如定义一个char arr[40] = "nckxvn asijlfw dvjkiq vsd asliw"; 有5个字符串组成 我想分别提出 来储存到5个大小刚好能储存这些字符串的数组中 应该怎么做 求大神帮忙! 搞了一下午都没有头绪 谢谢了!!!!1

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
int main(void){
    char arr[40] = "nckxvn   asijlfw  dvjkiq  vsd asliw",*p[5],a[8]; 
    int i,j,x;
    for(j=i=0;i<40;i++){
        sscanf(arr+i,"%s%n",a,&x);
        i+=x;
        if((p[j]=(char *)malloc(sizeof(char)*strlen(a)+1))==NULL){
            printf("Application memory failure...\n");
            exit(0);
        }
        strcpy(p[j++],a);
    }
    for(i=0;i<j;i++){
        printf("%s\n",p[i]);//Look at...
        free(p[i]);
    }
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-06
这个做不到吧,数组的大小必须在定义的时候就决定好。

但是字符串里面的大小不固定,所以放到数组中估计不行,但是可以用动态内存的方式来存储。
相似回答