94
阿新 • 來源:網路 • 發佈:2021-02-19
技術標籤:C
94 date:2021.2.18

詳細程式碼如下:
#include <stdio.h>
void fun( char *a )
{
/*
analyse:
遍歷前導* -> 放入陣列 ->放入字串尾部
*/
int i = 0, n = 0;
char *p;
p = a; //定義一個指標並指向字串的首地址
while(*p == '*') //利用迴圈找出字串的前導*號的個數
{
n++;
p++;
}
while(*p) //利用迴圈將剩餘的字元拷貝到另外一個字串中
{
a[i] = *p;
i++;
p++;
}
while(n != 0)
{
a[i] = '*'; //在字串末尾接上n個*
i++;
n--;
}
a[i] = '\0';
/* error:
int i,j =0,sum = 0;
for(i = 0; a[i] == '*'; i++) //取出前導*
{
a[sum]= a[i];
sum++;
}
for(i = sum+1; a[i] != '\0'; i++) //取出從第一個字母開始到字串末尾
{
a[j] = a[i];
j++;
}
a[j] += a[sum];
*a = a[j];
*/
/* CHANGE RIGHT:
int i,j =0,sum = 0;
for(i = 0; a[i] == '*'; i++) //取出前導*
{
a[sum]= a[i];
sum++;
}
for(i = sum; a[i] != '\0'; i++) //取出從第一個字母開始到字串末尾
{
a[j] = a[i];
j++;
}
while(sum != 0)
{
a[j] = '*';
j++;
sum--;
}
a[j] = '\0';
*/
}
void main()
{ char s[81]; int n=0; void NONO ();
printf("Enter a string:\n");gets(s);
fun( s );
printf("The string after moveing:\n");puts(s);
NONO();
}
