English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

#include
#include
#include
#include
void main(void){
char getdigits[15];
int charcount = 0;
int fillin;
do {
printf("請填入金額:");
scanf("%s*",getdigits);
charcount = strlen(getdigits);
if (charcount > 15 )
printf("\n您輸入多於十五位的數據,請重新執行程式\n\n");
} while (charcount > 15);
printf("\n您剛輸入的金額為:\n%s",getdigits);
printf("\n");
printf("\n\n增加保護的金額:\n");
for (fillin = 0; fillin < ( 15 - charcount ); fillin++)
printf("*");
printf("%s",getdigits);
printf("\n\n");
return;
}
要怎麼修改我的輸入123456789會變成123,456,789

2007-01-17 16:12:58 · 2 個解答 · 發問者 ? 1 in 電腦與網際網路 程式設計

可用陣列下去作修改

2007-01-17 16:35:51 · update #1

2 個解答

多一個 char getdigits2[20];
(15 + 4 + NULL; 你原來的 15也不太夠 少了一個位置放 NULL)
然後補上轉換的那一段 (請自行宣告變數)
...
charcount = strlen(getdigits);
if (charcount > 15 )
printf("n您輸入多於十五位的數據,請重新執行程式nn");
} while (charcount > 15);
k = charcount % 3;
j = charcount / 3;
s = 0;
if (k > 0) /* 最左邊的可能不到三位數 */
{
sprintf(getdigits2, "%*.*s,", k, k, getdigits);
s = k + 1;
}
for (i = 0; i < j; i++)
sprintf(&(getdigits2[s+4*i]), "%3.3s,", &(getdigits[k+3*i]));
getdigits2[s+4*i-1] = 0; /* 拿掉最後的 ',' */
如果有問題, 請來函討論. 不然, 我可能會錯失你再補充的疑點.

2007-01-18 05:41:12 · answer #1 · answered by JJ 7 · 0 0

  把這段程式塞到你想開始改變的位置:

charcount = strlen(getdigits);
dot_count = (charcount - 1) / 3;
for (i = charcount - 1; dot_count > 0; i --)
{
 getdigits[i + dot_count] = getdigits[i];
 if ((charcount - i) % 3 == 0)
 {
  dot_count --;
  getdigits[i + dot_count] = ',';
 }
}

記得把陣列擴充到 char getdigits[20];

2007-01-18 05:17:27 · answer #2 · answered by ? 5 · 0 0

fedest.com, questions and answers