我有两个包含字符串的指针数组。第一个从文件中逐行读取并填充。我希望将字符串从第一个复制到第二个但在某些时候进行一些更改。奇怪的是,当我使用代码从文件中删除一个人(某些行)时,在早期函数中使用相同的方法工作....
以下是代码:
date('Ymdhis', strtotime('+5 minutes'))
我也尝试使用这些方法:
void verificare() {
int nrInt = 0, linieInt = 0;
system("cls");
FILE *fisier, *fisier2;
char buffer[1000];
char* v[100], w[100], c[100], nume[100];
char numeFisier[100], rasp[100];
int i = 0, j = 0, k = 0, k1 = 0, k2 = 0, l = 0, cont = 1, pozVal;
printf("Enter the name of the file: ");
scanf("%s", numeFisier);
fisier = fopen(numeFisier, "rt");
while(!feof(fisier))
{
while(fgets(nume, sizeof nume, fisier))
{
v[i] = (char*) malloc(100);
v[i] = strdup(nume);
i++;
}
}
//Checking and reviewing the array with some formatting in the console:
for (j = 0; j < i; j+=4)
{
printf("\n");
printf("Record Nr.: %d \n", cont);
printf("Name: %s", v[j] );
printf("Surname: %s", v[j + 1] );
printf("Age: %s", v[j + 2] );
printf("\n");
cont++;
}
//Copying the from array1( v[] ) to array2( c[] )
for (k = 0; k < i; k++)
{
c[k] = (char*) malloc(1000);
strncpy(c[k],v[k],100);
} // this for loop works in another earlier function ......
}
我真的不明白我哪里弄错了......
答案 0 :(得分:1)
尝试更改声明:
char *v[100], *w[100], *c[100], *nume[100];
编辑:关键是当你在同一行上声明多个指针时,每个变量都需要一个星号。例如
char *a, *b;
声明两个char指针,而
char *a, b;
将a指定为char指针,但将b指定为char。