zoukankan      html  css  js  c++  java
  • C++使用cin.getline使用例题注意点2:字符计数

    #include<iostream>
    #include<cstring>
    using namespace std;
    void backAround(char *s,char *p);
    int main(int argc,char *argv[])
    {
        char s[500],p[500];
        int i;
        int j;
        int len;
        cin.getline(s,500);//用来确定输入数据
       // cout<<s;
        len = strlen(s);//此处循环用来分离句子单词
        for(i=0,j=0;i<len;i++){
    
            if(s[i]!=' ')p[j++]=s[i];
            else {p[j]='';backAround(p,p+j-1);cout<<p<<" ";j=0;}
            }
    
        p[j]='';
        backAround(p,p+j-1);
        cout<<p;
        return 0;
    }
    void backAround(char *s,char *p)
    {
        if(s>=p)
            return ;
        *s^=*p;//利用异或运算进行数据换位
        *p^=*s;
        *s^=*p;
        backAround(s+1,p-1);
    }

    代码有所参考:不记得是参考的哪个的了,在这里介绍cin.getline()函数使用方法,同时也是更新,cin.getline(s,sizeof,'a');输入一段字符串,以a结尾,但是不包括a.

    下面贴上代码:

     1 #include<iostream>
     2 #include<cstring>
     3 using namespace std;
     4 void backAround(char *s,char *p);
     5 int main(int argc,char *argv[])
     6 {
     7     char s[500];//p[500];
     8    // int i;
     9    // int j;
    10     int len;
    11     cin.getline(s,500,'.');//用来确定输入数据
    12     cout<<s<<endl;
    13     len = strlen(s);
    14     cout << len << endl;
    15 }

    可以看出字符串输出没有 " ."同时strlen计算字符串没有把字符串结束的回车算进去,空格算的,

    但是如果回车当作换行符使用的话是会算一个字符的.

    目前来看strlen会计算当作换行符使用的回车键,但是不会计算字符串结束的回车键.

  • 相关阅读:
    LeetCode "Minimum Moves to Equal Array Elements"
    LeetCode "Third Maximum Number"
    LeetCode "Arranging Coins"
    LeetCode "Is Subsequence"
    HackerRank "Flatland Space Stations"
    LeetCode "Super Pow"
    LeetCode "Wiggle Subsequence" !
    HackerRank "Jumping on the Clouds"
    HackerRank "Fair Rations"
    HackerRank "Equal Stacks"
  • 原文地址:https://www.cnblogs.com/dog-and-cat/p/6752942.html
Copyright © 2011-2022 走看看