1.待替换字符串 B 少于原字符串 A 时 = B 加 空格 (A如:,111,)
2.待替换字符串 B 多于原字符串 A 时 = B (字节多少决定 A )
现在,我想只将原字符串 B完全替换成待替换字符串 A 。
例如以下格式:
,12,458,2,56,845,3,45,87,444,666,351,69,236,35,1,8,6,145,3, 替换成
,12 ,458,2 ,56 ,845,3 ,45 ,87 ,444,666,351,69 ,236,35 ,1 ,8 ,6 ,145,3 ,
另:祝大家新年快乐
小弟在线等
----------------解决方案--------------------------------------------------------
你这个B到底又是什么?字符数组吗?怎么中间那么多逗号。。。?
----------------解决方案--------------------------------------------------------
一个数组还是很多个?
----------------解决方案--------------------------------------------------------
很多个,逗号是分隔符号
----------------解决方案--------------------------------------------------------
,C,共5位(C为1到3位不规则数字)
不足五位的在数字后面加空格,逗号不变
----------------解决方案--------------------------------------------------------
呵呵,这是我写的。
[CODE]
#include <stdio.h>
#include <stdlib.h>
#define N 1000
#define M 3
int main(void)
{
char str[N], str1[M];
int i, j = 0, k = 0;
gets(str);
for(i = 0;str[i] != '\0';i = i + k)
{
if(str[i] == ','&&str[i + 1] == '\0')
break;
if(str[i] == ','&&str[i + 2] == ',')
{
str1[j] = str[i + 1];
printf(",%-3d", atoi(str1));
str1[j] = '\0';
k = 2;
}
else if(str[i] == ','&&str[i + 3] == ',')
{
str1[j] = str[i + 1];
str1[j + 1] = str[i + 2];
printf(",%-3d", atoi(str1));
k = 3;
str1[j] = '\0';
str1[j + 1] = '\0';
}
else
{
str1[j] = str[i + 1];
str1[j + 1] = str[i + 2];
str1[j + 2] = str[i + 3];
printf(",%-3d", atoi(str1));
k = 4;
str1[j] = '\0';
str1[j + 1] = '\0';
str1[j + 2] = '\0';
}
}
printf(",\n");
return 0;
}
这个是将字符串B一次读入的。
----------------解决方案--------------------------------------------------------
貌似用输出控制就可以解决1
如:
str1="hello";
str2="mike";
printf("%.8s,",str1);
printf("%.8s,",str2);
----------------解决方案--------------------------------------------------------
对了,我记得有个strtok的函数吧,做这个题应该很有用,我不知道怎么用啊,。
----------------解决方案--------------------------------------------------------
这题什么意思啊
----------------解决方案--------------------------------------------------------
不明白
----------------解决方案--------------------------------------------------------