10878
解码磁带
将七个字符位子跟二进制码结合起来。通过空格(32),A(65),a(97)来印证。
537
1.查找字符串,如果基于C++语言的string类型,可以用s.find(args),args为字符串、字符、字符指针,如果找到,返回值为args的下标,如果没找到,则返回npos。如果想以是否找到作为分支判断的条件,可以写成if(s.find(args)!=npos).
如果基于C语言,可以用strstr(string1,string2)函数,当然,string1和string2都是C风格字符串,目的是在string1中寻找string2子串,如果找到string2,则返回首次出现的地址,如果没找到,则返回NULL;
2.用cout输出指定的精度格式是,cout<<setiosflags(ios:fixed)<<setprecision(2)<<c<<endl;
同时,本题要注意处理小数点之后的位数。指数函数是<cmath>中的pow(a,b),意思是a的b次方。
10361
简洁代码:
#include
#include
#define maxn 105
char s1[maxn],s2[maxn],s3[maxn],s4[maxn],s5[maxn],line[maxn];
void sgets(char *s){
char tmp;
int i=0;/*
while(1){
tmp=getchar();
if((tmp=='<')||(tmp=='>')||(tmp=='\n')){
s[i]='\0';
break;
}
s[i++]=tmp;
}*/
for(int i=0;i
思路:既然题目只通过输入输出判断结果是否符合要求,所以不必将几段字符串真正整合,按序输出即可。
26行处通过getchar(),吸收换行符。
34行通过手动加入'\0',抹掉后三位。
fgets会将结尾的换行符也存到数组里,即结尾为'\n''\0'.
10815
#include
#include
#include
#include
using namespace std;
int cmp(const void *_a,const void *_b){
char *a=(char*)_a;
char *b=(char*)_b;
return strcmp(a,b);
}
int main(){
char ch;
char s[10001][205];
int leap=1;
int t=0;
int c=0;
while((ch=getchar())!=EOF){
if((ch>='A')&&(ch<='Z'))
ch=ch-('A'-'a');
if(isalpha(ch)){
leap=0;
}
else
leap=1;
if(leap==1&&c!=0){
s[t][c++]='\0';
t++;
c=0;
s[t][c]=ch;
}
else if(leap==0){
s[t][c++]=ch;
}
}
qsort(s,t+1,sizeof(s[0]),cmp);
printf("%s\n",s[0]);
for(int i=0;i
用getchar()来逐个字符获取输入,通过判断是否是字符,来决定是否要换行、是否要储存。
设立了两个标志:是否要换行,当前位置是否为某行的第一个元素,来调控存储的位置。
将所有单词存储后排序,并不剔除重复单词,只是在输出时比较相邻两个单词是否相同,相同的单词只输出第一次。
10010
从左上第一个元素开始按序(按优先级顺序)逐个分八个方向试探,将八个方向的字符串存下来与input比较。
10115
从文本中查找、替换词汇。
善于运用strstr(string1,string2);从string1中查找string2,返回查找到的地址,如果没有查找到,返回NULL;
strcat(string1,string2),将string2接到string1后面;
strcpy(string1,string2),将string2复制到string1后面。