Мой код внизу. Я пытаюсь взять две строки и изменить их в соответствии с редактируемой стенограммой, которую я получаю. Я написал свой код, но я не понимаю, почему я получаю такой странный вывод. Моя цель состоит в том, чтобы сначала сохранить значения двух строк, а затем сделать их в 2D-массив, но я не выполняю первую часть этой цели. Вот проблема:Выравнивание символа weird output
Создать функцию, которая соответствует следующему:
входа: редактировать расшифровку и 2 оригинальных строки (3 строки)
Выход: 2 d массив А, содержащий два выравнивания сообщения Редактировать
Пример:
s1 = “vintner”
s2 = “writers”
trans = “RIMDMDMMI”
R означает "заменить" я означает "вставить" M означает "матч" D означает "удалить" Ответ:
alignment={“v_intner_”,
“wri_t_ers”}; //return a 2d array
Прототип функции:
char** getAlignment(char* s1, char* s2, char* s3);
Вот мой код ниже:
char TestS1[] = "vintner";
char TestS2[] = "writers";
char TestS3[] = "RIMDMDMMI";
char twoDarray[2][10];
char** getAlignment(char* s1, char* s2, char* s3){
char transTemp[n];
char s1Temp[n];
char s2Temp[n];
char sOne[n];
char sTwo[n];
strcpy(sOne, s1);
strcpy(sTwo, s2);
int jj;
strcpy(transTemp, s3);
int kk;
for(jj=0, kk=0; jj<n, kk<n; jj++, kk++){
if(transTemp[jj]=='R')
{
s1Temp[kk] = sOne[jj];
s2Temp[kk] = sTwo[jj];
}
if(transTemp[jj]=='I'){
s1Temp[kk] = '_';
s1Temp[kk+1] = sOne[jj];
s2Temp[kk] = sTwo[jj];
kk++;
}
if(transTemp[jj] == 'M'){
s1Temp[kk] = sOne[jj];
s2Temp[kk] = sTwo[jj];
}
if(transTemp[jj] == 'D'){
s2Temp[kk] = '_';
s2Temp[kk+1] = sTwo[jj];
s1Temp[kk] = sOne[jj];
kk++;
}
}
printf("\ns1Temp = %s\n", s1Temp);
printf("\ns2Temp = %s\n", s2Temp);
return 0;
}
main()
{
printf("The new method returns: ", getAlignment(TestS1,TestS2,TestS3));
return 0;
}
Нет спецификатор формата здесь: 'Е ("Новый метод возвращает:", getAlignment (TestS1, TestS2, TestS3));' –
Да, спасибо за указание на это. Однако мне все равно, что случилось с этим заявлением printf. Я просто хотел вызвать функцию. Значения, на которых я сосредоточен, распечатываются в функции. –
Вы пытаетесь вернуть 'int' с функцией, предназначенной для возврата' char ** ' –