Итак, я создал программу, которая в основном печатает любую заданную строку следующим образом:
Пример: Ввод:
Hello
Вывод:
Hello
ello
llo
lo
o
Проблема по какой-то причине, если я использую icdiff
и сравниваю свой вывод с этим выводом в текстовом файле, это говорит о том, что я пропускаю элементы и у меня больше пробелов, чем должно быть.
Вывод Icdiff:
Hello
ello
llo
Как вы можете видеть, это явно отличается от того, что у меня есть, но если я проверю его на терминале, я получу ожидаемый результат.
Программа:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void print_array(char *p, int tamanho) {
int i;
for (i = 0; i < tamanho; i++) {
printf("%c", p[i]);
}
printf("\n");
}
void nova_str(char *p, char *s, int inicio, int tamanho) {
int i;
for (i = inicio; i < tamanho; i++) {
s[i] = p[i];
}
}
int main() {
char p[1001];
int len;
int j;
scanf("%s", p);
len = strlen(p);
print_array(p, len);
for (j = 1; j < len; j++) {
char *np = (char *)calloc(len + 1, sizeof(char));
nova_str(p, np, j, len);
print_array(np, len);
free(np);
}
return 0;
}
На самом деле любая помощь будет оценена.