问题标题: 酷町堂:字符串、数组

0
1
已解决
王文博
王文博
缔造者之神
缔造者之神

如何定义数组?

如何防止输入空格后后面的东西全部省略?

如何判断字符串长度?

do-while循环怎么使用?(一直弄不明白)

怎么才能使输入字符串,输出字符串,并输出字符串长度最短的字符串长度。

悬赏10酷町豆,欢迎回答。

谢谢!

注:不要发布整段代码,不要乱发东西得经验值,否则…………呵呵。

王文博在2020-07-19 09:59:46追加了内容

如何定义数组?

如何防止输入空格后后面的东西全部省略?

如何判断字符串长度?

do-while循环怎么使用?(一直弄不明白)

怎么才能使输入一个整数,再输入这个整数个字符串,输出这些字符串,并输出字符串长度最短的字符串长度。

悬赏10酷町豆,欢迎回答。

谢谢!

注:不要发布整段代码,不要乱发东西得经验值,否则…………呵呵。

王文博在2020-07-19 10:01:42追加了内容

如何定义数组?

如何防止输入空格后后面的东西全部省略?

如何判断字符串长度?

do-while循环怎么使用?(一直弄不明白)

怎么才能使输入一个整数,再输入这个整数个字符串,输出这些字符串,并输出字符串长度最短的字符串长度。

奇怪,为什么设置我悬赏金额3次,扣30酷町豆?(不知道别回答,可以省略,我可不是冲着酷町豆来的)

悬赏10酷町豆,欢迎回答。

谢谢!

注:不要发布整段代码,不要乱发东西得经验值,否则…………呵呵。

王文博在2020-07-20 10:51:02追加了内容

strlen、strcat,strncat,strcpy,strcmp,strlwr,strupr函数是什么玩意?

 


1
已采纳
朱优扬
朱优扬
中级天翼
中级天翼

1.定义数组:

               int a[长度](长度要比题目给的长度长5~10)

            (也有double、char、bool等)

2:

                有点难讲,数组的话不存在,字符串的话倒是存在:(解决方案)

                                头文件:#include <bits/stdc++.h>

                                不需要cin,只需要getline();

                                用法:getline(cin,字符串名字);

3.字符串长度:

                头文件:#include <string>

                字符串长度函数:字符串名.size();

4.do-while循环公式:

                 do{

                        循环内容;

                 }while(条件语句);

5:

         头文件:#include <bits/stdc++.h>

       (1)

        string a;

        输入a;

        (cin,getline都行)  

        输出a;

        (cout即可)

      (2)

         string a,b;

         输入a,b;

         if(a的长度>b的长度){

                输出b.size();

         }  

          否则 如果(a的长度<b的长度){

                输出a.size();

           }

           (size用cout就可以输出了)

 

朱优扬在2020-07-19 10:25:13追加了内容

字符串输入如果用getline();但是你不想让他输入换行(getline()原本是包括换行的),你需要getchar();(就是这样用的)头文件:#include <bits/stdc++.h>

朱优扬在2020-07-20 20:59:20追加了内容

这些函数不是字符串的函数,是字符数组的函数(char a[1000])

strlen:

        格式:strlen(a);

        作用:计算当前数组的长度(不包括‘\0’)(在字符数组里,系统会自动在最后面加上\0)

strcpy:

        格式:strcpy(a,b);

        作用:将“后”复制给“前”

strcat:

        格式:strcat(a,b);(输出a即可(前面的))

        作用:将两个字符数组连接

strcmp:

        格式:strcmp(a,b);(一般在if的条件里或在输出里出现)

        功能:比较两个字符数组的大小(这个有点难讲,我在下面在把细节讲一下)

        1.是按字典序比较大小(ASCLL码)(你别告诉我你没学过……)(如果真没学过那我也没法解释)

        2.判断(if)a>b     返回值大于0

                           a<b     返回值小于0

                           a==b      返回值是0

        3.条件

                if(strcmp(a,b)>0){

                        a>b

                }

                else if(strcmp(a,b)<0){

                        a<b

                }

                else{

                        a==b

                }

剩下3个不常用,讲一下吧:

strupr:

        格式:strupr(字符数组名);

        作用:将字符数组转换成大写形式

strlwr:

        与strupr相反,就不多讲了(格式一样(将前面的函数名字改一下即可),将字符数组转换成小写形式)

strncat:

        格式:strncat(字符数组1,字符数组2,前多少位(a));

        作用:字符数组2前a个字符代替字符数组1的前a个字符

 

 

 

 

 

另外拓展一下:

        有一个函数后面是cmp,cmp其实是放在sort的最后面的一个函数,他需要在int main()前面定义一个东西(这里就不多讲了)。

        sort是用来排序的(神排序,因为……什么都能排)最先接触sort的时候应该是在学字符串的最后一节课(当时在学用sort进行字符串内部排序)

        格式:sort(字符串名.begin(),字符串名.end());

        作用:字符串内部从小到大排序

        头文件:#include <algorithm>(#include <bits/stdc++.h>)

        

朱优扬在2020-07-21 10:34:57追加了内容

这些函数都需要用头文件:#include <cstring>

1
董子墨
董子墨
中级天翼
中级天翼

1、定义数组格式:数组类型 数组名[数组大小]

如:int a[10] 就定义了10个整型变量,下标分别为:0,1,2,3,4,5,6,7,8,9。注:数组下标从0开始!!!

2、如果你指的是字符串,就用getline输入。格式:getline(cin,字符串名);

如:geltine(cin,a);

注:getline是碰到换行符停止。如果先用cin输入1个变量后换行,则需要先用一个getline吞掉换行符再输入!!!getline一次只能输入1个字符串!

3、字符串长度:字符串名.size()或字符串名.length()

如:a.size() a.length()

4、这个嘛。。。我说不好,可以看书或问老师,或参见朱优扬的回答

5、

输入1个正整数n,再吞掉换行符。然后循环n遍,用getline输入n个字符串,并用打擂台的方式找到最小长度,并输出

董子墨在2020-07-20 11:11:06追加了内容

函数上网搜去

1
黄子扬
黄子扬
初级天翼
初级天翼

1.[]

2.getline(string) gets(char[])

3.size length

4. do while=while 循环次数+1 =没用

5.string s[] 输入 sort 输出

问的都是些啥问题

0
0
朱优扬
朱优扬
中级天翼
中级天翼

这些函数不是字符串的函数,是字符数组的函数(char a[1000])

strlen:

        格式:strlen(a);

        作用:计算当前数组的长度(不包括‘\0’)(在字符数组里,系统会自动在最后面加上\0)

strcpy:

        格式:strcpy(a,b);

        作用:将“后”复制给“前”

strcat:

        格式:strcat(a,b);(输出a即可(前面的))

        作用:将两个字符数组连接

strcmp:

        格式:strcmp(a,b);(一般在if的条件里或在输出里出现)

        功能:比较两个字符数组的大小(这个有点难讲,我在下面在把细节讲一下)

        1.是按字典序比较大小(ASCLL码)(你别告诉我你没学过……)(如果真没学过那我也没法解释)

        2.判断(if)a>b     返回值大于0

                           a<b     返回值小于0

                           a==b      返回值是0

        3.条件

                if(strcmp(a,b)>0){

                        a>b

                }

                else if(strcmp(a,b)<0){

                        a<b

                }

                else{

                        a==b

                }

剩下3个不常用,讲一下吧:

strupr:

        格式:strupr(字符数组名);

        作用:将字符数组转换成大写形式

strlwr:

        与strupr相反,就不多讲了(格式一样(将前面的函数名字改一下即可),将字符数组转换成小写形式)

strncat:

        格式:strncat(字符数组1,字符数组2,前多少位(a));

        作用:字符数组2前a个字符代替字符数组1的前a个字符

 

 

 

 

 

另外拓展一下:

        有一个函数后面是cmp,cmp其实是放在sort的最后面的一个函数,他需要在int main()前面定义一个东西(这里就不多讲了)。

        sort是用来排序的(神排序,因为……什么都能排)最先接触sort的时候应该是在学字符串的最后一节课(当时在学用sort进行字符串内部排序)

        格式:sort(字符串名.begin(),字符串名.end());

        作用:字符串内部从小到大排序

        头文件:#include <algorithm>(#include <bits/stdc++.h>)

注:除了sort,剩下的都需要用头文件:#include <cstring>

0
梁俊杰
梁俊杰
中级守护
中级守护

1.[]

2.getline(string) gets(char[])

3.size length

4. do while=while 循环次数+1 =没用

5.string s[] 输入 sort 输出

0
曹砚青
曹砚青
中级光能
中级光能

你怎么那么多问题,自己上课听不就好了吗?

但我还是想回答:

1. 字符串类型(string):

 字符串(string)类型是C++ 中的一种类类型,具有十分强大的功能。一个字符串相当于一个字符型的数组(都是若干字符的有序排列)
 在使用字符串类型之前要加头文件:
  #include <string>
 字符串(string)类型虽然不是C++的基本数据类型(基本数据类型包括int,long long,float,double,char,bool等等),但是很多情况下,字符串型变量的用法可以类比基本数据类型变量的用法。

2. 字符串的定义与初始化:

 格式:string 字符串名;
  如:string s; //定义了一个字符串s,并且默认初始化为空, 相当于 string s="";(注意不是空格" ")
 可以在定义的同时用一个字符串常量给字符串初始化,
  如:string s="hello";
 也可以用另一个字符串给字符串初始化,
  如:string s=s1; //s1是另一个已经定义好的字符串

3. 字符常量与字符串常量:

 a. 字符常量用单引号括起来,如:'a'
  字符串常量用双引号括起来,如:"hello"
 b. 字符常量只包含一个字符
  字符串常量包含若干个字符(可以为0个,即"")
 c. 字符串常量结尾有一个隐藏的字符'\0',大部分情况下不 影响做题,知晓即可
  注意:字符串都是用双引号引起来的,字符都是用单引号引起来的;字符串的每个元素相当于一个字符变量(可以用于与字符进行比较:s[i]==’a’

4. 字符串的输入与输出:

 类似于普通变量的输入,可以用cin语句输入一个字符串
  string s;
  cin>>s;
 但是使用cin语句只能输入不带空格(或/tab)的字符串,如果输入的字符串含有空格,那么cin语句只会把第一个空格之前的部分赋值给字符串,比如输入了“ni hao world”,那么只会把“ni”赋值给字符串。
 要输入一行带空格的字符串,则需要使用getline函数:
  getline(cin,s);
 要输出一个字符串,直接使用cout语句就能把整个字符串输出出来(不管有没有空格):
  cout<<s;

5. 字符串元素的引用:

 一个字符串就是一个字符型的数组,所以对字符串中某一个字符的引用,就是对字符数组中元素的引用,比如:
  string s="hello";
 则s[0],s[1],s[2],s[3],s[4]的值分别是’h’,‘e’,‘l’,‘l’,‘o’(字符串中每个元素的类型都是字符型char)。
 如果修改其中某元素的值,重新赋值即可,如:
  s[4]=’?’;
  则输出s的值结果为“hell?”。

6. 遍历字符串

 字符串下标:从0开始,最后一个字符对应的下标是:s.size()-1所以遍历字符串的方法:
 遍历字符串所有元素–遍历字符串的下标
  for(int i=0;i<=s.size()-1;i++)
  或者
  for(int i=0;i<s.size();i++)

7. 求字符串长度:

 求某字符串的长度可以使用size()函数或length()函数
 格式:字符串名.size(); 或 字符串名.length();
 得到的结果是一个整数,表示字符串的长度,可以把它赋值给一个整型变量。
 如:string s;
  int a=s.size();

0
王泽宇
王泽宇
初级光能
初级光能
1.[]

2.getline(string) gets(char[])

3.size length

4. do while=while 循环次数+1 =没用

5.string s[] 输入 sort 输出

 

0
0
王子逸
王子逸
新手天翼
新手天翼

来了

字符串定义:

int a[10000]={0};//全部赋值0;

 

王子逸在2020-07-19 12:08:17追加了内容

getline();可以防止省略空格后

头文件#include<string>

王子逸在2020-07-19 12:12:53追加了内容

你是哪个学校的?

和我同桌同名哎!

王子逸在2020-07-19 12:13:08追加了内容

你是哪个学校的?

和我同桌同名哎!

0
刘乐宸
刘乐宸
新手天翼
新手天翼

一个贴好像只能问一个问题吧,你有点狂啊,哈哈!

咳咳,答案奉上,只求采纳。

1.加头文件string,用string定义,栗子:string a;
2.用getline或getchar格式输入
3.判断长度用.size(),如判断a的长度:cout<<a.size();
4.do里面写执行内容,while后面的括号里写执行条件
5.输入:cin>>a 或 getline(cin,a),输出:cout即可,或者用循环。

0
潘艺博
潘艺博
初级天翼
初级天翼

scanf("%d",&a);

for(int i=1;i<=a;i++){

        scanf("%d",&n[i]);

    for(int j=1;j<=i-1;j++){

        if(n[i]<n[j]){

            cnt++;

            }

        }

        printf("%d ",cnt);

        cnt=0;

    }

TLE90

我可没抄袭(因为我不要*地用了火车头,AC了)

我只是想找到个不用火车头AC的思路

0
我要回答