文章

C++ primer 3.10习题

#include<iostream>
#include<string>
using namespace std;
int main() {
    string s1("hello,world!!!");
    string s2;
    for (auto i = 0;i < s1.size();i++) {  //以下在循环体内的必须包含在花括号内

        if (!ispunct(s1[i]))            //如果s1的第i位不是标点符号,难点就在这 !ispunct(s1[i])

            s2 += s1[i];                //s2就添加这个字符进来
    }
    cout << s2 << endl;
    return 0;

}

这道题目可以说在string小结是卡住了最少1小时左右的,都有思路,但是没想到我们没有学习remove,也有解决答案 用add.
而且下标我们都不是很熟悉,所以一直卡住,搜索之后才有了答案,以下为好友槿珂的答案:

#include<iostream>
#include<string>
using namespace std;
int main() {
    string s1("hello,world!!!");
    string s2;
    for (auto i = 0;i < s1.size();i++) {  //以下在循环体内的必须包含在花括号内

        if (isalnum(s1[i]))         //如果s1的第i位是字母或数字时为真,难点就在这 isalnum(s1)[i]
            s2 += s1[i];                //s2就添加这个字符进来
    }
    cout << s2 << endl;
    return 0;

}

看来下标是很重要的,课本之前没有重点说明,但是习题直接给我们上了一记深刻的课程.越来越爱这本书

原文来自:C++ primer 3.10习题,尊重自己,尊重每一个人;转发请注明来源!
0 0

发表评论