Ich habe ein C-Programm geschrieben, um die Teilmenge von Strings umzukehren. Und ich bin nicht in der Lage, die Ausgabe zu bekommen.Subset von Char Array im C-Programm
#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
{
int i,j,n,k, size;
char a[10]="aabbcc";
i=0;
n=strlen(a);
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
for(k=i;k<j+1;k++)
{
printf("%c",a[k]);
size = strlen(a);
reverse(a[k], 0, size - 1);
printf("The string after reversing is: %s\n", a);
}
printf("\n");
}
}
getch();
}
void reverse(char str1[], int index, int size)
{
char temp;
temp = str1[index];
str1[index] = str1[size - index];
str1[size - index] = temp;
if (index == size/2)
{
return;
}
reverse(str1, index + 1, size);
}
Angenommen, mein Eingang ist "aabbcc". Meine Teilstrings werden a, aa, aabb, .... usw. sein. Aber das Umkehren der Saite geschieht nur für mein Inout-Wort "aabbcc". Wie bekomme ich den Code, um alle Teilstrings der gegebenen Zeichenfolge umzukehren.
Dies sollte nicht einmal ohne Warnung kompilieren. Das erste Argument von 'reverse()' soll ein Array sein, aber 'reverse (a [k], 0, size-1)' übergibt ein einzelnes 'char' als erstes Argument. – Barmar
Wenn Sie an einer Teilzeichenfolge arbeiten möchten, müssen Sie sie in ein temporäres Array kopieren. Andernfalls ändern Sie die ursprüngliche Zeichenfolge, und zukünftige Schleifen können das Original nicht wiederherstellen. – Barmar
ja !! Aber wie übertrage ich die aktuelle Teilzeichenfolge, um sie umzukehren. Welche Änderungen sollte ich machen um zu arbeiten? –