c语言经典题目:在字符串的指定位置插入字符

发布于:2023-03-12 ⋅ 阅读:(109) ⋅ 点赞:(0)

题目
请编写程序,实现以下功能:在字符串中的所有数字字符前加一个$字符。例如,输入 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;
}