#include <stdio.h>
#include <string.h>
#include "stdlib.h"
int main()
{
int n,i,len=0;
char a,c;
char b[50001];
char d[50001];
scanf("%d %c",&n,&a);
getchar(); //来吸收上一次scanf函数不能接收的回车
gets(b);
len = strlen((char *)(b));
if(len>n)
{for(i=len-n;i<len;i++)
printf("%c",b[i]);
return 0;}
if(len==n)
{ printf("%s",b);return 0;}
if(len < n)
{
//sum = n-len;
for(i=0;i<n-len;i++)
{
d[i]=a;
}
//d[i] = '\0';
}
strcat(d,b); //把b拼接到d后面
printf("%s",d);
return 0;
}
总结
(1)scanf 函数遇到 空格、TAB时,会结束读取;
(2)gets 函数遇到 空格、TAB是,不会结束读取;
(3)scanf 函数和gets 函数遇到回车都会结束。
需要用到 getchar 函数来吸收上一次 scanf 函数不能接收的回车。