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