Я пытаюсь реализовать код, где мне нужно переставить строку. Когда я пытаюсь выполнить мой код, я получаю следующие ошибки и предупреждения;Перенастройка строки
1.passing аргумент 1 из перестановочны делает целое число от указателя без приведения
2.expected полукокса, но аргумент имеет тип полукокса *
тип 3.conflicting для перестановочны
Что может вызвать эти ошибки в моей программе?
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void swap(char *first,char *second);
void permute(char a,int l,int r);
int main(){
char str[] = "ABC";
int size = strlen(str);
permute(str,0,size-1);
return 0;
}
void permute(char *a,int l,int r){
if (l==r){
printf("%s\n",a);
}else{
int i;
for(i=l;i<=r;i++){
swap((a+l),(a+i));
permute(a,l+1,r);
swap((a+l),(a+i));
}
}
}
void swap(char *first,char *second){
char *temp;
*temp = *first;
*first = *second;
*second = *temp;
}
Я изменил это ,,,,, но все же программа не работает –
Разве это не то, что вы хотите для обмена? void swap (char * first, char * second) { char temp; temp = * first; * первая = * вторая; * second = temp; } – code82
Вы должны отлаживать каждое из своих предложений один за другим. Strlen уже возвращает только количество символов. который будет равен 3 для «ABC», прохождение размера 1 уже неверно. Будут и другие проблемы, протестируйте свою функцию свопинга отдельно, как уже было задано – fayyazkl