, поэтому я читаю строку символов из файла в массив с именем source
. Теперь я хочу разделить этот массив на еще два массива, один из которых содержит все четные индексы, а другой содержит нечетные индексы массива source
.
Это код, который у меня есть в настоящее время, и я я пытаюсь выполнить sh в функции reachable
.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "graph.h"
void getfile(char[], char[]);
void reachable(char[]);
int size;
int i;
////////////GETFILE FUNCTION/////////////
void getfile(char *graph, char *source) {
FILE *infile;
infile = fopen(graph, "r");
if (infile == NULL) {
fprintf(stderr, "Can't open input file %s!\n", graph);
exit(1);
}
while (fscanf(infile, "%s", &source[i]) != EOF) {
++i;
}
fclose(infile);
size = strlen(source);
printf("%s\n", source);
reachable(&source[0]);
}
///////////REACHABLE FUNCTION////////////
void reachable (char *source){
char odd[100];
odd[100] ='\0';
char even[100];
even[100] = '\0';
for (i = 0; i<size; i+=2){
// printf("%c", source[i]); // when I run this line, I get the output I want
odd[i] = source[i]; // so why doesn't this put the output into the odd array?
}
for (i = 1; i<size; i+=2){
even[i] = source[i];
}
printf("%s\n", odd);
// printf("%s\n", even);
}
Есть идеи, почему это не работает?
Эта строка хранится в source
:
rlxrtgacufkrzyngilzxazrasjsbjqqitxmewplhtwzgxhokfmadrv
и это вывод, который я хочу получить для even
и odd
.
even: lrgcfryglxzajbqixephwghkmdv
odd: rxtaukznizarssjqtmwltzxofar
Есть идеи, как это сделать? Заранее спасибо!