1
我已經編寫了一個C-程序來顛倒字符串的子集。我無法獲得輸出。C程序中Char陣列的子集
#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);
}
假設我的輸入是「aabbcc」。我的子串將是a,aa,aabb,....等等。 但是,字符串的倒退只發生在我的inout單詞「aabbcc」中。如何獲取代碼以反轉給定字符串的所有子字符串。
這應該甚至沒有警告編譯。 'reverse()'的第一個參數應該是一個數組,但'reverse(a [k],0,size-1)'傳遞一個單獨的'char'作爲第一個參數。 – Barmar
如果你想在一個子串上工作,你需要將它複製到一個臨時數組中。否則,你正在修改原始字符串,未來的循環將無法取回原始。 – Barmar
是的!但是,如何通過當前的子字符串來反轉它。我應該做些什麼改變才能起作用? –