复制动态数组中的链字符

时间:2017-04-16 22:00:49

标签: c arrays dynamic

我正在尝试进行编程培训。正如我的法国人一样,我的变数可能看起来很奇怪但很好。我把我的整个代码放在这个下面。部分窃听是“Liste * CreerListe”。那就是魔术发生的地方,以及泰坦尼克号落下的地方。由于某种原因,它要么不允许我将名为S的char数组放入我的Class侦听器中,要么它可以工作,但在它之后放置8倍“1/2”。关于为什么以及如何解决它的任何想法?

///------------------------------------------
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <ctype.h>
#include <string.h>
#include "Struct.h"

int B64(int v)
{
 if (v < 26) return ('A' + v);
 if (v < 52) return ('a' + (v - 26));
 if (v < 62) return ('0' + (v - 52));
 if (v == 62) return '+';
 return '/';
}


LISTE*CreerListe(char v[])
{
 LISTE* mot;
 char *temp = v;
 mot = (LISTE*)malloc(sizeof(LISTE));
 //mot->s = {};
 //printf("%i", strlen(v));

strncpy(mot->s, temp, strlen(temp));
 return mot;
}

void ConversionB64(LISTE* v)
{
 int longueur=0, i=0, j = 0 , temp = 0,decalage=0;
 longueur = strlen(v->s);
 for (i = 0, j = 8; i < longueur; ++i)
 {
  temp = (v->s[i])<<(j*(longueur-i))+temp;
 }
 decalage = (longueur * 6);
 for (decalage; decalage>-1;decalage-=6)
 {
  printf("%c", B64((temp >> decalage) & 0x03f));
 }
 printf("\n");

}


main()
{
 LISTE*mot;

 char v[] = "Brutus";
 //printf("%i", strlen(v));
 mot =CreerListe(&v);

 //int f = 0, z = 0;
 //f = strlen(mot->s);
 //z = strlen(v);
 //printf("%d, %d",f,z );
 //ConversionB64(mot);
 printf("%s", mot->s);
 _getch();
}
/--------------------- Here is LISTE (struct.h)
#ifndef LISTE_H
#define LISTE_H

typedef struct Liste
{
 char s[];

}LISTE;


LISTE *CreerListe(char v[]);


#endif

0 个答案:

没有答案