題目
請編寫程序,實現以下功能:在字符串中的所有數字字符前加一個$字符。例如,輸入 A1B23CD45,輸出 A$1B$2$3CD$4$5。
思路:
觀察規律可發現插入的字母只會在排在數字前面,不會影響字母。
因此完整代碼如下
#include <stdio.h>
int fun(char* s)
{
char t[80];
int i, j;
for (i = 0; s[i]; i++) /*將串s拷貝至串t*/
t[i] = s[i];
t[i] = '\0';
for (i = 0, j = 0; t[i]; i++)
/*對於數字字符先寫一個$符號,再寫該數字字符*/
if (t[i] >= '0' && t[i] <= '9')
{
s[j++] = '$';
s[j++] = t[i];
}
/*對於非數字字符原樣寫入串s*/
else
s[j++] = t[i];
s[j] = '\0'; /*在串s結尾加結束標誌*/
return 0;
}
int main()
{
char s[80];
printf("Enter a string:");
scanf("%s", s); /*輸入字符串*/
fun(s);
printf("The result: %s\n", s); /*輸出結果*/
return 0;
}