輸入是一個字符串:HeLloWorlD
爲例, 輸出應爲:DlHelLoorW
旋轉串,資本保持點/小持有點
大寫字母將保持它們的斑點和僅在彼此之間的那些點旋轉,同樣爲小寫字母
的第一個字母是H
,下一個大寫字母L
,在旋轉信H
將採取L
的現貨和L
將採取W
的部位等,同小字母
辦法,我做到了,拆串入兩個字符串,資本和小弦和充滿0
所以和capitalString = H0L00W000D
空斑然後是應該旋轉它們的功能。我想點之間旋轉,哪裏有字母,所以smallString
變得smallString = 0l0el0oor0
和capitalString = D0H00L000W
,但我的函數將只需旋轉的所有字符
static void rotateString (char * a, int n)
{
int i, j;
char buffer[BUFSIZ] = { '\0' };
for (i = n, j = 0; a[i] != '\0'; i++)
buffer[j++] = a[i], a[i] = '\0' ;
strcat (buffer , a), strcpy (a , buffer);
}
我知道事情是這樣寫的,它不考慮在0
反正,但我想添加一個if
條件,但只有把事情弄得更糟
目前還不清楚該示例輸入和輸出是如何相關的。 –
@OliverCharlesworth編輯 –
另一種方法如何?首先,瀏覽將輸入字符串分成兩部分的字符串:(A)一個大寫字母的字符串和(b)一個小寫字母的字符串。根據需要旋轉分離的字符串。然後遍歷輸入字符串,併爲每個字符從相應的旋轉字符串中選擇下一個字符並將其附加到結果中。 – HABO