#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "full_regr.h"
int full_regr()
{
struct commands *s1=NULL;
s1 = (struct commands *)malloc(sizeof(struct commands));
Char *token1;
Char *token2;
char *char_frequency_cat;
char *frequency_array[100];
for(j=0;j<=24;j++)
{
token1=strtok(s1->frequency[j],".");
token2=strtok(NULL,"."); //rhs of frequency
if(!token2) //If decimal not placed in frequency
{
printf("\t\tFrequencySSM......:==== %s\n",s1->frequency[1]);** /// it will print 1025
token1 = strcat(s1->frequency[j],"000000");
printf("\t\tFrequencySSM......:==== %s\n",s1->frequency[1]); // it will print 00000
char_frequency_cat= token1;
printf("\t\tin if char_freq: %s\n",char_frequency_cat);
}
}
}
выход: S1-> частота [0] = 1012 S1-> частота [1] = 0000 /// значение должно быть 1025символ указателя не печатает правильное значение
Я пытаюсь для чтения значения частоты из файла input.txt
. Формат, который мы использовали в частоте: FREQ 1012,1025;
Весь этот код находится в цикле цикла, так что одна за другой каждая частота может быть считана и использована для дальнейшего процесса, поэтому проблема в том, что для первой частоты, т.е. 1012, она работает, но поскольку она приходит к strcat(s1->frequency[j])
, вторая частота становится нулевой, а если я увеличиваю, т.е. 3-я частота, я ничего не получаю. char *frequency[1000]
, определенные в строении
Каково определение 'struct commands'? И вы подумали о том, где этот вызов 'strcat()' помещает конкатенированную строку? – AAT
struct commands { \t \t char * частота [1000]; }; – ABC
Я использовал strcat, так как хочу добавить шесть нулей для частоты в МГц. и значение strcat будет сохранено в токене1. Я помещаю printf между каждой строкой, чтобы проверить – ABC