C++一本通1400统计单词数,我用字符数组写了一下,但是一部分对一部分错,不太理解,有没有学长帮忙看一下
http://ybt.ssoier.cn:8088/problem_show.php?pid=1400
#include<iostream>
#include<cstring>
#define N 1001
using namespace std;
char word[N];
char article[N];
char to_l(char c){
if (c<='z' and c>='a'){
return c;
}
else{
return (c+32);
}
}
int main(){
int n,ar_len=0,tong=0,first=-1;
cin>>word;
getchar();
cin.getline(article,N);
int word_l=strlen(word);
int article_l=strlen(article);
article[article_l]=' ';//加一个空格进来方便判断
for(int i=0;i<=article_l;i++){
if(article[i]!=' '){
ar_len++;//记录文章里单独单词的长度
}else{
if(ar_len==word_l){//如果长度和目标单词一致再进行后续判断
int num=0;//相同字母的计数
for(int j=0;j<word_l;j++){//把每一位单词和文章里指定位置判断
if(to_l(word[j])==to_l(article[i-word_l+j])){
num++;
}
}
if(num==word_l){//如果相同单词数==单词长度
if (first==-1){
first=i-word_l;//记录首地址
}
tong++;//相同数
}
}
ar_len=0;//文章里字符数重新统计
}
}
if(tong!=0){
cout<<tong<<' '<<first;
} else{
cout<<-1;
}
return 0;
}
题目有限制字符串长度1000?
有这么复杂吗
基本概念:类、对象、继承;
基本特征:封装、继承、多态。
封装:将低层次的元素组合起来形成新的、更高实体的技术。
继承:广义的继承有三种实现形式:实现继承、可视继承、接口继承。
多态:允许将子类类型的指针赋值给父类类型的指针。