3个回答
展开全部
#include <stdio.h>
int main()
{
char s[100],s2[200];
int i,j,k;
printf("input one line string:\n");
gets(s); //输入一行字符串,允许含空格
i=0; j=0; //原字符下标位置 i, 新字符下标位置j
while(s[i]!='\0'){
if (s[i]>='0' && s[i]<='9'){
s2[j++]='$';s2[j++]=s[i++]; //是数字的加入一个美元符号
} else s2[j++]=s[i++];
} ;
s2[j]='\0';
printf("%s\n",s2);
return 0;
}
int main()
{
char s[100],s2[200];
int i,j,k;
printf("input one line string:\n");
gets(s); //输入一行字符串,允许含空格
i=0; j=0; //原字符下标位置 i, 新字符下标位置j
while(s[i]!='\0'){
if (s[i]>='0' && s[i]<='9'){
s2[j++]='$';s2[j++]=s[i++]; //是数字的加入一个美元符号
} else s2[j++]=s[i++];
} ;
s2[j]='\0';
printf("%s\n",s2);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdbool.h>
#include <stdio.h>
static inline bool IsNum(char c) { return c >= '0' && c <= '9'; }
int main()
{
char buf[BUFSIZ];
gets(buf);
char *p = buf;
while (*p != '\0')
{
if (IsNum(*p))
putchar('$');
putchar(*p++);
}
putchar('\n');
}
追问
inline是什么?
追答
这问题问得好,可惜我无法给出准确回答。大概是一种建议编译器对代码做出特定处理的约定。
其实我这个代码没有完美满足题目的要求,题目理论上是要修改字符串的。但是这样效率会很低,数组并不适合拼接字符串的操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询