C语言 高分 字符串输出

来源:百度知道 编辑:UC知道 时间:2024/05/16 16:07:04
题目要求:
1\输入字符串长度
2\输入任意字符串

有效字符串标准格式为[sssss]ddddddddddddd[sssss];
s=空格,d=0或1,“[]”内的内容是可选的,既可以存在也可以不存在,
d一定要连续存在,
d中的‘1’不能超过连续4个,
字符串长度小于1中输入的长度。

无效字符串如(‘_’=空格):123aba123,10011111100(1连续超过4个),11001_ _1100,以及超长
输入无效字符串则显示“无效”,退出。

3\若字符串有效则将其有按以下要求转换输出:
000=0;
001=1;
010=2;
100=3;
011=A;
110=B;
101=C;
111=D;

如:101010101010=C2C2
若字符串位数不满则用‘0’补齐位数,如11100=D0

代码用C语言写,千万表用C++。
to :qufulin750

无效字符串如(‘_’=空格):123aba123,10011111100(1连续超过4个),11001_ _1100,以及超长

“11001_ _1100”也是无效字符串

你的代码里这一向没有实现

我对上面的修改了一下,
你看不!

#include <stdio.h>

void main( void )
{

char inputStr[255],outStr[255],temp[255];
int strCount,i,j,k,validate,lx;

printf( "Input a string: " );
gets( inputStr );
printf("Input MAX length of string!");
scanf("%d",&strCount);

validate=1;

for(i=0,j=0;inputStr[i]!='\0';i++)
{
if(inputStr[i] !=' ' && inputStr[i+1] == ' ')
{
printf("err,blank exist!\n");
return ;
}
}

for(i=0,j=0;inputStr[i]!='\0';i++){
if(inputStr[i]==' ')
continue;
else
if(inputStr[i]=='0' || inputStr[i]=='1'){
if(inputStr[i]=='1')
lx++;
else
lx=0;
if(lx>=4)
{ <