3 条题解
-
1
#include <iostream> #include <string> using namespace std; int main() { int n; char c; cin >> n >> c; cin.ignore(); // 忽略换行符 string s; getline(cin, s); int len = s.length(); if (len < n) { int num = n - len; for (int i = 0; i < num; i++) { cout << c; } cout << s; } else { cout << s.substr(0, n); } return 0; }
-
0
如果使用c语言的fgets话,记得在获取N和c的时候在后面添加\n,防止读入空行。
#include<stdio.h> #include<string.h> #include<stdlib.h> int main(){ int N,i; i=0; int wei=0; char c; scanf("%d %c\n",&N,&c); char z[1000]; fgets(z,sizeof(z),stdin); z[strcspn(z,"\n")]='\0'; while(z[i]!='\0'){ wei++; i++; } if(wei==N){ for(i=0;i<N;i++){ printf("%c",z[i]); } } else if(wei<N){ for(i=0;i<N-wei;i++){ printf("%c",c); } for(i=0;i<wei;i++){ printf("%c",z[i]); } } else{ for(i=0;i<N;i++){ printf("%c",z[i]); } } return 0; }
-
-1
#include <stdio.h> #include <string.h> int main() { int a; int i; char b; scanf("%d %c",&a,&b); getchar(); char c[1000]; fgets(c,sizeof(c),stdin);//当扫描到换行符时停止 if (c[strlen(c)-1]=='\n')//换行符会被打印出来哦,但是你看不见,就会报错哒 { c[strlen(c)-1]='\0';//换行符变为空白 } if (a>strlen(c)) { int d=a-strlen(c);//strlen不会计算'\0'哦 for (i=0;i<d;i++) { printf("%c",b); } printf("%s",c); }else { for (i=0;i<a;i++) { printf("%c",c[i]); } } return 0; }
- 1
信息
- ID
- 366
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 1
- 标签
- 递交数
- 783
- 已通过
- 142
- 上传者