字符串
QWERTY
敲键盘,网游错一位,还原输出。(终于知道为什么有的题目写的那么简单了。。。。)
#include <stdio.h>
char *s="`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";
int main(){
int c,i;
while((c=getchar())!=EOF){
for(i=0;s[i]&&s[i]!=c;i++);
//当找到找到在s中的位置时退出,此时i为它的位置。
if(s[i]) putchar(s[i-1]);
else putchar(c);
}
return 0;
}
输入:
O S, GOMR YPFSU/
输出:
I AM FINE TODAY.
#####关于getchar() 别人家的整理
TEX括号
#include <stdio.h>
int main() {
int c,q=1;
while((c=getchar())!=EOF){
if(c=='"'){printf("%s",q ?"``":"”");q=!q;}
else printf("%c",c);
}
return 0;
}
输入:
"To be or not to be," quoth the Bard, "that is the question".
输出:
``To be or not to be,” quoth the Bard, ``that is the question”.
周期串
输出最小的周期,嗯,最小就行。
#include <stdio.h>
#include<string.h>
int main() {
char word[100];
int i,j;
scanf("%s",word);
int len=strlen(word);
for(i=1;i<=len;i++)
if(len%i==0){
int ok=1;
for(j=i;j<len;j++){
if(word[j]!=word[j%i]){ok=0;break;}
//最小周期后面的每一个周期都可第一个周期比较
}
if(ok==1){printf("%d\n",i);break;}
}
return 0;
}
输入:
HoHoHo
输出:
2
转换说明符
%c 字符
%s 字符串
%d 有符号十进制整数
%f 浮点数(包括float和doulbe)
%e(%E) 浮点数指数输出[e-(E-)记数法]
%g(%G) 浮点数不显无意义的零"0"
%i 有符号十进制整数(与%d相同)
%u 无符号十进制整数
%o 八进制整数 e.g. 0123
%x(%X) 十六进制整数0f(0F) e.g. 0x1234
%p 指针
%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)
%% "%"