HJ4 字符串分隔

描述

•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;

•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:

连续输入字符串(每个字符串长度小于等于100)

输出描述:

依次输出所有分割后的长度为8的新字符串

代码一:

#include<stdio.h>
#include<string.h>

int main ( )
{
    char a[100];
    int L,c,i,j;
	gets(a);
    L=strlen(a);
	if (L==0)
		printf("空字符串,不处理");
	else
	{

			for(i=0;i<L;i++)
			{
				if((i+1)%8==0)
							printf("%c\n",a[i]);
				else
							printf("%c",a[i]);

			}
			if (L%8!=0)
			{
				c=8-L%8;
				 for(j=0;j<c;j++)
				 {
					printf("0");
				 }
				 printf("\n");  
        

			} 
	}

	return 0;

}

代码二:

//代码最后补充的0总会换行,原因:printf 中没有添加换行符 '\n',输出时也自动换行了。
//所以 fgets() 和 gets() 一样,最后的回车都会从缓冲区中取出来。只不过 gets() 是取出来丢掉,而 fgets() 是取出来自己留着。
//这个成功了,将fgets函数换成gets函数
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main ( )
{
    char a[100];
    int L,c,i;
	//fgets(a,100,stdin);
	gets(a);
    L=strlen(a);
    if (L==0)
		printf("空字符串,不处理\n");
	else if (L!=0)
	{	
			if (L%8==0)
			{
				for(i=0;i<L;i++)
				{
					if((i+1)%8==0)
							printf("%c\n",a[i]);
					else
							printf("%c",a[i]);

				}
			}
			else
			{
				c=8-L%8;
				for(i=0;i<L;i++)
				{
					if((i+1)%8==0)
						printf("%c\n",a[i]);
					else
						printf("%c",a[i]);

				}
				 for(i=0;i<c;i++)
						 printf("0");
						 printf("\n");  
        

		}    
    }
	system("pause"); 
	return 0;
}

        注意:使用fgets函数时,最后补充的0会另起一行,原因是输入字符时,摁了【enter】键后,回车键被“读入”了,所以在补充的0之前会有个换行符,会导致补充的0会另起一行,而换成gets函数后,换行符就不会被“读入”。

  #include<stdlib.h>

........

 system("pause"); 

        添加这两句话是因为VS软件显示结果的窗口一闪而过,很快就被关闭了,添加后窗口会被笃定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值