C语言 请编写程序实现以下功能:在字符串中所有数字字符前加一个$字符。例如, 输入:A1B23C

如题所述

#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;

}

扩展资料:

printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出; 另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d\n",a); 

输出结果为a=1234。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-25
#include<stdio.h>
#include<string.h>

#define MAXLEN  1000
int main()
{
    char s[MAXLEN];
    char t[MAXLEN*2];
    int i, slen, tlen;

    scanf("%s", s);
    slen = strlen(s);
    tlen = 0;
    for(i = 0; i < slen; ++i)
    {
        if(s[i] >= '0' && s[i] <= '9')
        {
            t[tlen++] = '$';
        }
        t[tlen++] = s[i];
    }
    t[tlen] = '\0';
    printf("%s\n", t);
    //如果要修改的是原始字符串,就加上“strcpy(s, t);” 注意字符串长度不要超过MAXLEN.
    return 0;
}

本回答被网友采纳
相似回答