C++使用cin.getline使用例题注意点2:字符计数,cin.getline例题

图片 1

C++使用cin.getline使用例题注意点2:字符计数,cin.getline例题

#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]='\0';backAround(p,p+j-1);cout<<p<<" ";j=0;}
        }

    p[j]='\0';
    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 }

图片 2

图片 3

能够看到字符串输出未有 ”
.”相同的时候strlen总括字符串未有把字符串截止的回车算进去,空格算的,

然而如若回车当作换行符使用的话是会算一个字符的.

图片 4

现阶段来看strlen会计算当作换行符使用的回车键,不过不会图谋字符串甘休的回车键.

http://www.bkjia.com/cjjc/1208135.htmlwww.bkjia.comtruehttp://www.bkjia.com/cjjc/1208135.htmlTechArticleC++使用cin.getline使用例题注意点2:字符计数,cin.getline例题
#includeiostream #include cstring using namespace std; void
backAround( char *s, char * p); int main(…

 1 #include<iostream>
 2 #include<cstring>
 3 #include<stdio.h>
 4 using namespace std;
 5 class stu{
 6     private:
 7         char name[32];
 8         char ID[32];
 9         int age;
10         int score[4];
11         int avg_score;
12     public:
13         void getDate(char Name[],char id[],int Age);
14         void score_avrg(int score1[],int score2[],int score3[],int score4[]);
15         void printfDate();
16 };
17 
18 void stu::getDate(char Name[],char id[],int Age)
19 {
20     strcpy(name,Name);//利用数据传参进行对类内成员变量的修改
21     strcpy(ID,id);
22     age=Age;
23 }
24 
25 void stu::printfDate()
26 {
27     cout<<name<<","<<age<<","<<ID<<","<<avg_score<<endl;
28 }
29 
30 void stu::score_avrg(int score1[],int score2[],int score3[],int score4[])
31 {
32     avg_score=(score1[0]+score2[0]+score3[0]+score4[0])/4;
33 }
34 
35 int main(int argc,char *argv[])
36 {
37         char Name[32];
38         char id[32];
39         char a;
40         int Age=0;
41         int Score[4];
42         stu m;//无论如何都得需要定义一个类的变量对类的成员函数进行修改
43         cin.getline(Name,32,',');//此处“,”是表示结束符
44         cin>>Age>>a;
45         cin.getline(id,32,',');
46         cin>>Score[0]>>a>>Score[1]>>a>>Score[2]>>a>>Score[3];
47         m.getDate(Name,id,Age);//数据修改变量,传参为数组地址
48         m.score_avrg(&Score[0],&Score[1],&Score[2],&Score[3]);
49         m.printfDate();
50         return 0;
51 }

图片 5

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图