精华内容
下载资源
问答
  • C++初始化字符串

    千次阅读 2017-09-12 09:54:14
    标准库提供了string表示可以变长的字符序列,使用string类型必须首先包含string头文件,... 默认初始化,s1是一个空串 string s2(s1) s2是s1的副本 string s2=s1 等价于s2(s1),s2是s1的副本 string s3(“value”)

    标准库提供了string表示可以变长的字符序列,使用string类型必须首先包含string头文件,作为标准库的一部分,string定义在命名空间std中,

    方式含义
    string s1默认初始化,s1是一个空串
    string s2(s1)s2是s1的副本
    string s2=s1等价于s2(s1),s2是s1的副本
    string s3(“value”)s3是字面值”value”的副本,除了字面值最后的那个空字符外
    string s3=”value”等价于s3(“value”),s3是字面值”value”的副本
    string s4(n,’c’)把s4初始化为联系的n个字符组成的串

    string对象上的操作

    方式含义
    os<< s将s写到输出流os中,返回o
    is>>s从is中读取字符串赋给s,字符串以空白分隔,返回is
    getline(is,s)从is中读取一行赋给s,返回is
    s.empty()s为空返回true,否则返回false
    s.size()返回s中字符的个数
    s[n]返回s中第n个字符的引用,位置从0计起
    s1+s2返回s1,s2连接后的值
    s1=s2用s2的副本代替s1原来的字符
    s1==s2如果s1和s2中所含有的字符完全一样,则他们相等,string对象的相等性对字母的大小写敏感。
    s!=s2
    <,<=,>,>=利用字符在字典中的顺序进行比较,且对字母的大小写敏感
    展开全文
  • C初始化字符串指针和二维字符数组

    千次阅读 2017-08-01 00:12:52
    1.字符串指针char *string = “hello mooc”; //hello mooc这个字符串存储在常量区,string其实只保存了字符串常量的首地址。 说明:字符串指针变量的定义说明与指向字符变量的指针变量说明是相同的。只能按对指针...

    1.字符串指针

    char *string = “hello mooc”; //hello mooc这个字符串存储在常量区,string其实只保存了字符串常量的首地址。

    说明:字符串指针变量的定义说明与指向字符变量的指针变量说明是相同的。只能按对指针变量的赋值不同来区别。对指向字符变量的指针变量应赋予该字符变量的地址。
    当重新赋值时
    string = “I love mooc”; //str保存的是字符串常量I love mooc的首地址
    比如:
    printf(“%c\n”,&(string+4)); //输出了v

    注意:
    1)使用字符数组来保存的字符串是保存在栈里的,保存栈里面的东西是可读可写,所有我们可以改变里面的字符当把一个字符串常量赋值一个字符数组的时候,那么它会把字符串常量中的所有字符都放到字符数组里面。
    2)使用字符指针来保存字符串,它保存的是字符串的常量地址,常量区是只读的,所以我们不可以修改字符串中的字符。

    2.二维字符串数组

    char ss[3][10] = {“c++”,”JavaScript”,”html”}; //三个字符串长度为10的二维字符串数组,每个字符串长度不足10的补\0
    但不可以是这样char ss[3][10] = {{‘c’,‘+’,‘+’},{‘j‘………}; //依次类推
    定义的时候可以缺省行下标,但不能缺省列下标。
    char s[][10] = {“China”,”Japan”,”American”}; //3行10列,但后面长度不够就补\0。

    ps:借鉴一位博主的,觉得很有必要牢记。

    展开全文
  • c语言字符串初始化

    千次阅读 2020-09-30 20:30:01
    c语言字符串的两种形式及其初始化 ·字符数组(定义时就初始化是个好习惯,否则可能会有bug的惊喜) 第一种初始化 char ch[6]={'h','e','l','l','o'} ,也可以写成char ch[]={'h','e','l','l','o'} ,最后一个...

    预习C语言字符串语法的一点点总结:

      c语言字符串的两种形式及其初始化

             ·字符数组(定义时就初始化是个好习惯,否则可能会有bug的惊喜)

                第一种初始化       char ch[6]={'h','e','l','l','o'} ,也可以写成char ch[]={'h','e','l','l','o'} ,最后一个位置默认保存0即'\0',用作判定字符串结束,这个很细节,需要注意

                 第二种初始化         char ch[6]="hello";这种写法是不是很舒服,有点string类型的味道了,实际上与第一种是一样的。

                第三种初始化       char ch[6]="";程序会为首地址为ch的字符串分配6个空间,但是内存中都是空('\0'),同上,实际上用户只有5个空间,最后一位必须是'\0'

               第四种初始化     char ch[6]={0};第一个字符赋值为空,以后的每个字符赋值为空,与第三种初始化类似。

              错误操作示范:char ch[6]="12345";

                                      char a[6];

                                      ch=a;//数组首地址是常量,不可被更改赋值,建议使用指针 

    注:字符数组的读取与修改具有天然优势,大部分情况下还是建议使用字符数组啦。

           ·字符指针 

              第一种:char *ch;直接定义,不去赋值也没事,不像数组定义的时候一定要分配空间。

              第二种:char  *ch=NULL;如果有强迫症,非要赋值的话,可以这么干,或者char *ch="1233453";

              第三种: char b[6]="hello";

                           char *ch;

                           ch=b;

                          将b字符串首地址赋值给ch,也很简单。

            第四种:char *ch=(char *)malloc(sizeof(char)*6);//分配6个字符空间的地址,首地址赋值给ch。有点字符数组的味道了。这种初始化看似很鸡肋,但是如果你想使用gets(ch),就必须事先为它分配空间啦。

    注:如果你并不知道你需要读取的字符串是多大,并且似乎并没有太多的存取操作,貌似事先分配一个很大或者很小的数组都不妥当,那您不妨使用字符指针啦。

     

     

    展开全文
  • 字符数组的初始化字符串的使用

    千次阅读 2020-10-15 18:55:45
    文章目录字符数组的定义字符数组初始化字符串存放'\0'的作用 字符数组的定义 同整型数组一样: char c[10]; char ch[3][4]; 字符数组初始化 定义数组时初始化,如: char c[10]={'a','b','c','d'}; 如果输出格式为...

    字符数组的定义

    同整型数组一样:
    一维数组定义:char c[10];
    二维数组定义:char ch[3][4];

    字符数组初始化

    1. 定义数组时初始化,如: char c[10]={'a','b','c','d'};
      • 按每个字符元素输出时,
        • 输出格式为时printf("%d\t",c[i]);则会输出字符分别对应的ASCII码,后面用0补全;
        • 输出格式为时printf("%c\t",c[i]);则会输出a b c d四个字符,后面元素自动定为空字符(’\0’),输出结果如图:
          在这里插入图片描述
      • 作为整个字符输出时:printf("%s",ch);则输出abc。
      • 由于字符型数据是以整型数据形式(ASCII码)存放,所以也可以用整型数组来存放字符数据;int a[10]; a[0]='a';缺点:容易造成内存空间的浪费,因为一个整型数据占4个字节,一个字符型数据占1个字节。
    2. 仅定义数组char c[10];后没有对数组初始化,会输出不可预估的值;如果花括号中提供的字符个数>数组长度,则会出现语法错误;
    3. 可以不写数组长度: char c[]={'a','b','c','d'};数组长度即为大括号中的字符个数。可用printf("数组长度为:%d\n",sizeof(c));验证。
    4. 用字符串常量初始化字符数组 char c[]="i am A";末尾自动加’\0’,等同于char c[]={'i',' ','a','m',' ','A','\0'},也可以把大括号去掉char c[]={"i am A"};此时数组长度为7,最后一位是’\0’。
    5. C语言中数组名代表该数组的起始地址,所以不能在初始化后重新赋值。
      如:char str1[]=“china”; str1=str2;编译错误

    字符串存放

    C语言中没有字符串类型,也没有字符串变量,字符串是存放在字符型数组中的。C语言将字符串作为字符数组来处理

    1. 字符串结束标志—’\0’
      • C系统在字符数组中存放字符串常量时,会自动加一个’\0’作为结束符。如果将"i am A"字符串常量存入一维数组的话,占7个字节,最后一位是’\0’。
      • ‘‘\0’代表ASCII码为0的字符,是一个空操作符,只起一个标志作用。

    '\0’的作用

    表示字符串结束
    如:定义数组 char str1[]=“china”; 如果想用scanf(…)或者gets()对数组中的元素进行修改的话,如:

      char str1[]="china"; 
      scanf("%s",str1);
      //或gets(str1);
      puts(str1);
      /*
      for(int i=0;i<5;i++){
    		printf("%c\t",str1[i]);
    	}
    	*/
    

    最多可输入长度为6的字符串(包含’\0’),否则会报错;
    假设输入的字符串是"ww",用scanf或者gets函数时,会自动给输入的字符串末尾加一个’\0’;所以此时数组str1中存放的元素为: w w \0 n a \0

    • 用puts()输出和for循环遍历输出的结果是不一样的:
      • puts将第一个\0前的字符串输出,输出结果为 : w w;
      • for循环是将元素一一输出,输出结果为: w w \0(不输出) n a \0(不输出) ;
    • 如果将for循环中的循环条件i<5改为i<strlen(str1)后,跟puts的输出结果是一样的。说明strlen()计算字符数组长度也是计算到第一个’\0’结束。
    展开全文
  • C语言中字符串初始化

    千次阅读 2021-03-19 14:27:23
    所以,字符串有两种表示方法,分别是字符数组和字符指针,而这两种表示的初始化却又不尽相同。 为了方便比较结果,定义全局变量LENGTH为15,定义输出函数print如下: /** Display the outputs. * args: chars[], T
  • 初始python字符串

    千次阅读 2018-09-04 09:57:08
    格式化输出字符串 String 内建函数大全 初始python字符串 &gt;&gt;&gt; print('包含中文的str') 包含中文的str ord()和chr()  对于单个字符的编码,Python提供了ord()函数获取字符的整数...
  • C语言字符串输入及输出的几种方式

    万次阅读 多人点赞 2018-02-06 00:12:56
    1.字符串数组+初始化 char s1[]="array"; //字符数组 char s2[6]="array"; //数组长度=字符串长度+1,因为字符串末尾会自动添‘\0‘ printf("%s,%c\n",s1,s2[2]); //array,r 2.字符串指针+初始化 char *sp=...
  • C语言字符串初始化与操作

    万次阅读 多人点赞 2016-08-01 21:44:40
    C语言中字符一般是单引号,而字符串是双引号,且字符串是...1.字符数组的定义与初始化 char str[]={" hello world!"} ; 也可以去掉花括号 char str[]=" hello world!" ; 这两种是在定义的时候直接用字符串常量赋值,
  • 声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例。 重点:(三种) using System; using System.Co...
  • 在C中对于以下语句: // 全局域 int i = 3; int j = i; ...而对于j,编译器遇到这种语句,只知道j = i ...是变量,不是常量,编译器无法在编译时直接得到它的值,编译器只会找到i ...编译器能够直接用3 ...来初始化 j ,
  • 字符串数组初始化

    千次阅读 2009-07-21 20:19:00
    初始化字符串数组时,编译器自动将字符串最后一个字符后面加上/0,以表示字符串的结束。如果数组的大小大于字符串的长度+1,那么把字符串结束后面的元素也都初始化为/0; 看这段程序:定义一个大小为12的字符串数组...
  • C++字符串数组 | 字符串数组输出

    千次阅读 2020-12-12 22:12:52
    C++字符串数组初始化 string array[3]={{"li"},{"zhang"},{"wang"}} 读者在使用字符串数组时应该注意以下几点: 在一个字符串数组中包含若干个元素,每个元素相当于一个字符串变量。 并要求每个字符串元素具有...
  • (1)什么是字符数组? 字符数组是指用来存放字符数据的数组。其定义的一般形式为: char 数组名[数据长度] 。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个...直接逐个初始化字符数组: char ch[11...
  • c字符串初始化问题

    千次阅读 2019-01-06 22:25:24
    c字符串初始化问题: char *str = (char*)malloc(sizeof(char)*10); for(int i = 0; i &lt; 7; i++)  str[i] = '#'; printf(“%s\n", str); 上面的代码中,只初始化了前7个位置,后面的3个没有...
  • C语言中字符数组的初始化与赋值,字符串相关函数!...(1)直接逐个初始化字符数组:字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。 char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p'...
  • 汇编语言学习 字符串输出

    千次阅读 2014-04-13 18:07:05
    字符串输出 字符串操作程序设计: 对于一个汇编程序 : 有三段 数据段 堆栈段 代码段 初始化程序: MOV AX ,DATAS MOV DS, AX 为什么需要这个 ,主要是因为 mov 无法实现将立即数传入段寄存器 ,但是 MO...
  • 字符串指针的定义、初始化与赋值

    千次阅读 2019-12-13 15:25:57
    指针的定义、初始化与赋值指针的定义、初始化与赋值char * 和 const char *用字符串常量给指针和数组赋值 指针的定义、初始化与赋值 char * 和 const char * const char *p1 ; char * const p1 ; const char * ...
  • 字符串初始化: 例如: char a[4]={'p','z','l','\0'}; char c[2]; c[0]='a'; c[1]='b'; c[2]='\0'; 字符串输出: 1,用printf函数输出 char a[4]={'p','z','l','\0'};...
  • ios开发之字符串初始化(一)

    千次阅读 2017-03-14 20:33:02
    可以从字符数组初始化,从C语言字符串初始化,从文件初始化,从网络地址初始化……初始化操作主要功能是将不同编码的字符串转化为unicode编码的字符串。以下为最基本的4个初始化函数- (instancetype)...
  • ctrl+alt+L可以格式化代码 问题:输入str,然后输出str ...执行初始化,输入变量,执行变量;输出变量  3. 关闭sess 代码: import tensorflow as tf sess = tf.InteractiveSession() # 开启一个s...
  • 字符串初始化 两种方式直接等号赋值,用new初始化,直接等号赋值放入内存池,其它变量也可以引用;new初始化分配内存空间,可引用; 字符串赋值为null 初始化了,并且有了引用,但是没有指向任何内存空间; 2...
  • 可以通过字符数组或字符指针来定义字符串,也可以用宏定义对常量字符串进行定义。...//定义了一个字符数组string1,并进行初始化,使得其长度自动为13(字符串”prison break"中的字符个数加上结尾的'\0') ch...
  • 字符串初始化函数用法介绍,然后DIY字符串初始化函数,并且PK标准库函数
  • 有几种错误的初始化方法要注意:char str[3] = {"abc", " ", " "}; error : excess elements in char array initializer char str[3] = "abc"; char str[3] = {"abc"}; 这两种不会提示错误,但输出时会乱码。 ...
  • 1、字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。 [cpp] view plain copy char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};  即把10个...
  • 字符串的定义与赋值及初始化

    万次阅读 多人点赞 2013-06-18 14:08:57
    字符串的定义与赋值及初始化 C语言的运算符根本无法操作字符串。在C语言中把字符串当作数组来处理,因此,对字符串的限制方式和对数组的一样,特别是,它们都能用C语言的运算符进行复制和比较操作。 怎么给这个...
  • 用c++计算字符串长度时,将字符串初始化,其中有空格,这时输出了正确长度,而永cin输入字符串时,输出的长度只是空格前的长度
  • C++ 字符串 对象 C++ 字符串 对象 创建方法 ...C++ 字符串 对象 输出到控制台 C++ 字符串 拼接 C++ 字符串 方法调用 ( 栈内存对象 ) C++ 字符串 方法调用 ( 堆内存对象 ) C / C++ 字符串 完整代码示例
  •   创建一个字符数组很方便,可以通过数组下标访问多个不同的字符串,创建字符串数组既可以通过Char数组创建,也可以通过指向字符串的指针数组创建....
  • 字符串Z型输出

    千次阅读 2018-03-06 11:08:45
    输入一个字符串和一个数字,将字符串填入倒Z形输入字符串,然后按照列读取字符,得到一个新的字符,输出这个字符。例如:字符串"PAYPALISHIRING",3P A H NAPLSIIGY I R 得到的新字符是”...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 472,611
精华内容 189,044
关键字:

不初始化字符串输出