精华内容
下载资源
问答
  • 其实不然,字符数组和字符串是完全不相同的两个概念,千万不要混淆。分析如下所示的示例代码。 #include <stdio.h> #include <string.h> int main(void) {  /*字符数组赋初值...

    C 语言中并不存在字符串这个数据类型,而是使用字符数组来保存字符串。那么,字符数组就一定是字符串吗?

    对于这个问题,大多教科书中的回答是“是”。其实不然,字符数组和字符串是完全不相同的两个概念,千万不要混淆。分析如下所示的示例代码。

    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
        /*字符数组赋初值*/
        char cArr[] = {'I','L','O','V','E','C'};
        /*字符串赋初值*/
        char sArr[] = "ILOVEC";
        /*用sizeof()求长度*/
        printf("cArr的长度=%d\n", sizeof(cArr));
        printf("sArr的长度=%d\n", sizeof(sArr));
        /*用strlen()求长度*/
        printf("cArr的长度=%d\n", strlen(cArr));
        printf("sArr的长度=%d\n", strlen(sArr));
        /*用printf的%s打印内容*/
        printf("cArr的内容=%s\n", cArr);
        printf("sArr的内容=%s\n", sArr);
        return 0;
    }
    
    运行结果为:
    cArr的长度=6
    sArr的长度=7
    cArr的长度=7
    sArr的长度=6
    cArr的内容=ILOVEC*
    sArr的内容=ILOVEC
    
    从代码及其运行结果中可以看出如下几点。
    
    首先,从概念上讲,cArr 是一个字符数组,而 sArr 是一个字符串。因此,对于 sArr,编译时会自动在末尾增加一个 null 字符(也就是'\0',用十六进制表示为 0x00);而对于 cArr,则不会自动增加任何东西。
    
    记住,这里的 sArr 必须是“char sArr[7]="ILOVEC"”,而不能够是“char sArr[6]="ILOVEC"”。
    
    其次,“sizeof()”运算符求的是字符数组的长度,而不是字符串长度。因此,对于“sizeof(cArr)”,其运行结果为 6;而对于 sizeof(sArr),其运行结果为 7(之所以为 7,是因为 sArr 是一个字符串,编译时会自动在末尾增加一个 null 字符)。因此,对于以下代码:
    
    /*字符数组赋初值*/
    char cArr[] = {'I','L','O','V','E','C'};
    /*字符串赋初值*/
    char sArr[] = "ILOVEC";

    也可以写成如下等价形式:

    /*字符数组赋初值*/
    char cArr[6] = {'I','L','O','V','E','C'};
    /*字符串赋初值*/
    char sArr[7] = "ILOVEC";

    最后,对于字符串 sArr,可以直接使用 printf 的 %s 打印其内容;而对字符数组,很显然使用 printf 的 %s 打印其内容是不合适的。

    通过对以上代码的分析,现在我们可以很简单地得出字符数组和字符串二者之间的区别:

    • 对于字符数组,其长度是固定的,其中任何一个数组元素都可以为 null 字符。因此,字符数组不一定是字符串。
    • 对于字符串,它必须以 null 结尾,其后的字符不属于该字符串。字符串一定是字符数组,它是最后一个字符为 null 字符的字符数组。

    转载于:http://c.biancheng.net/view/337.html

    展开全文
  • 使用 typeof constructor 共同判断,数组 = object + Array,字符串 = string + String 一.判断是否为数组类型 二.判断是否为字符串类型 参考内容链接

    使用 typeofconstructor 共同判断,数组 = object + Array,字符串 = string + String

    一.判断是否为数组类型

    二.判断是否为字符串类型

    参考内容链接

    展开全文
  • 开发的时候用到了字符数组和字符串的转化,所以顺便记录一下public class hello {public static void main(String[] args){ String S="this_string"; //将字符串转化为字符数组 char[] thischar=S.toCharArray(); ...

    字符数组、字符串数组和字符串三者之间的转化

    开发的时候用到了字符数组和字符串的转化,所以顺便记录一下

    public class hello {
    
    public static void main(String[] args){
    
            String S="this_string";
    
            //将字符串转化为字符数组
            char[] thischar=S.toCharArray();
            for(char a: thischar) {
                System.out.print(a);
            }
            System.out.println();
    
            //将字符数组转化为字符串,一共三种;
            String S1=String.valueOf(thischar);
            System.out.println(S1);
    
            //valueOf等同于如下
            //String str1 = new String(thischar);
    
            //还有String str2=thischar.toString();
    
    
            //将字符串数组转化为字符串
            String[] S2={"str","ing","String"};
            StringBuffer str=new StringBuffer();
            //注意区分length和length(),数组没有length(),而字符串有length();
            for(int i=0;i<S2.length;i++){  
                str.append(S2[i]);
            }
            System.out.println(str.toString());
    
         }
    }
    
    展开全文
  • 字符串转为数组 按照逗号区分 String[] array = rolecode.split(",");

    将字符串转为数组 按照逗号区分

    String[] array = rolecode.split(",");
    

    数组转字符串

    StringBuilder sb = new StringBuilder("(");
                if (rolecode.indexOf(",") > -1) {
                    String[] array = rolecode.split(",");
                    if (array != null && array.length > 0) {
                        for (int i = 0; i < array.length; i++) {
                            if (!Util.isEoN(array[i])) {
                                sb.append("'").append(array[i]).append("',");
                            }
                        }
                        sb.setCharAt(sb.length() - 1, ')');
                    }
                }else{
                    sb.append("'").append(rolecode).append("')");
                }
    

    注释:
    定义一个字符序列可变的字符串StringBuilder sb = new StringBuilder("(");
    将改变字符串sb的内容sb.append("'").append(array[i]).append("',");

    展开全文
  • ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一维数组 ...数组用来储存一组数据,C语言中的数组只能存放一种数据类型的数据,如int、char,存放的数据称为元素。 二
  • c中字符数组和字符串的区别
  • 字符数组字符串数组

    千次阅读 2017-05-21 17:22:20
    C语言中:字符数组与字符串数组的定义字符数组是一个存放字符的数组字符串数组是一个特殊的字符数组,它以’\0’(ASCII 为0)结尾我们不能通过字符数组名知道数组内有多少成员,但可以通过字符串数组名计算数组内的...
  • 字符串数组 字符串指针 的区别

    千次阅读 2016-12-02 23:29:36
    在C语言中,对字符串的操作主要有两种方式,一是使用字符数组,char str[];二是使用字符指针。那么二者有什么区别呢?下面将分述二者的使用,最后进行比较。 一、字符数组  使用char str[]定义一个...
  • 一、字符串、字符数组和整型数组的创建 1、字符串的创建方法 1.1通过引用字符数组来创建字符串 char a[]={'A','b','c','E'}; String str1=new String(a); System.out.println(str1); 1.2先定义后赋值 ...
  • C语言中: 字符数组字符串数组的定义 ...这里对字符数组(强调:字符串数组是一个特殊的字符数组)计算有一个关键字 sizeof,一个函数 strlen: sizeof 计算的是字符数组占用空间的大小(这里除以每个...
  • 在程序设计中,为了方便处理,通常把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。...本文主要介绍一维数组、二维数组和字符数组,其余的数组将会在以后的文章中介绍到...
  • JavaScript 中为数组和字符串提供了很多方法,有时候有些方法极容易混淆。比如截取数组或者字符串的方法有 splice slice及 split。今天给大家分享一下数组和字符串的常用方法。
  • 字符串数组字符串指针的区别。 字符串数组:如 char buf[] = "abcd"; 首先在内存字符常量区分配一块内存空间放下”abcd\0”,然后在栈中分配一块连续的内存空间,将字符常量区的”abcd\0”复制到栈中。...
  • Java中的数组和字符串

    2014-04-10 22:06:30
    Java中的数组和字符串 一.数组:用一个标识符(变量名)一组下标来代表一组相同数据类型的数据元素的集合.其中的每个数组元素在数组中的位置是固定的.可以通过叫做下标的编号加以区分,通过标识符下标来访问每一个...
  • Visual Basic快捷教程——数组字符串

    千次阅读 热门讨论 2010-10-18 20:11:00
    将原子型数据按照一定的规则重组,就可以形成结构化数据,数组可以被认为是一种...数组和字符串是编程语言中的重要组成部分,也是实际开发中被大量使用的内容,本文主要介绍Visual Basic 2013中数组字符串的基本用法
  • 本任务来给大家讲解一下,关于字符数组的相关知识,通过本任务的学习,读者应该能够熟练声明字符数组,使用字符数组,之后会讲字符串的相关知识,字符串在实际开发中广泛应用,通过本任务的学习,希望大家能熟练掌握...
  • js数组字符串的相互转换方法 1、数组字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); //"0-1-2-3-4" 2、字符串转数组 实现方法为将...
  • C++ 字符数组字符串处理函数 本篇文章是对C++学习过程中,关于字符串这节部分的内容进行整理,本篇主要讲解以字符数组形式存储的字符串概念,...字符串的输入输出4.字符串处理函数 1.字符数组 用来存放字符型数...
  • java二维数组和字符串

    千次阅读 2017-03-08 13:03:23
    l 二维数组 int a[]=new int [2][]; a[0]=new int [3]; a[1]=new int [5];  在Java语言中,二维数组被看做是数组数组数组空间不是连续分配的,所以不要求二维数组每一维的大小都相同。 数组一旦创建后,...
  • 众所周知任何类型的指针在32位模式下大小都为4BYTE,很多人对数组指针并不能很好的区分它们的区别,首先在C语言层面,数组名是一个常量不可修改,而指针可以随意指向,其次如果在a.cpp中定义了 char a[100]; 的...
  • 数组的结构基本要素 引入 尽管我们已经学习了Java基本数据类型:变量、运算符、控制结构等,并且可以综合利用它们解决各种各样的问题。 当面临下面这样的问题时还是有些尴尬的: Java考试结束后,老师给小茗同学...
  • 通常字符数组中的所存储的内容也可以称为字符串 char *p1 = “A String.”; char p2[] = “Another String.”; 这两种写法的不同吧. p1指向的这个字符串是个常量, 不可改变, 程序在编译期间就为”A String....
  • 字符串简介 * 在Java中,一个字符串可以用String类型来存储 ...* 字符串可以看做是一个特殊的字符数组,为了跟普通的字符数组区分开来,应该在字符串的尾部添加了一个结束标志'\0'。 '\0'是一个ASCII
  • 我们知道,字符数组和字符串都可以用于存储文本数据。 任何与字符串相关的问题一定可以从字符串的属性里面找到线索,比如不可变性。 对于String password1 = "1q2w3e";,String实例(本...
  • 数组是有序的,通过下标来区分每一个元素。数组的下标从0开始到数组的长度-1 结束。  数组创建初始化:  ① int[ ] a =new int[ 3 ] ;  a[0]= 1 ; a[1] = 2 ; a[2] = 3 ;  ② int[] a = new int[]{1 , 2 , 3...
  • // C11 二维数组字符串数组、多维数组 // // Created by xalo on 15/10/21. // Copyright (c) 2015年 Darling.com. All rights reserved. // #import int main(int argc, const ...
  • 这里写目录标题字符串substr:母串提取concat:字符串拼接indexOfBytes:字符串查找strcasecmp:不区分大小写比较toLower:将字符串转化为小写并返回toUpper:将字符串转化为大写并返回官方文档:数组indexOfArray:...
  • 最近在使用shell写脚本的时候,想实现python中两个很简单的功能:1:判断一个字符串是否包含另一个字符串。2:怎么用实现python的列表功能。这里跟大家分享一下。 1:判断一个字符串是否包含另一个字符串: 1 2...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 181,445
精华内容 72,578
关键字:

区分数组和字符串