计算字符串的长度及sizeof与strlen、gets与scanf、字符数组与字符串

本文详细介绍了字符串处理中的关键概念,如字符串长度的计算方法、字符数组与字符串的区别、以及字符串处理函数的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


题目:计算字符串最后一个单词的长度,单词以空格隔开。  一行字符串,非空,长度小于5000。
输入描述:
一行字符串,非空,长度小于5000。
输出描述:
整数N,最后一个单词的长度。
示例1

输入

hello world

输出

5

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    int length = 0, i = 0,N = 0;
    char input[5000];
    gets(input);                 //用gets得到输入的字符串
    //scanf("%s",&input);       //scanf函数不能接受空格、制表符Tab、和回车等;
    length = strlen(input);     //strlen得到字符数组长度,strlen是函数,计算字符串的长度 
    //length = sizeof(input);   //sizeof是运算符,计算的是给input这个变量分配的空间大小,即5000;
    i = length - 1;
    while(input[i] !=' ' && i >=0){ //两种情况,直接是一个单词没有空格的情况
        N++;
        i--;
    }
    printf("%d",N);
    return 0;
}
【注意】
1、gets() 与 scanf()的区别
相同点:
都可用于输入字符串,所在头文件都是 stdio.h
字符串接受结束后自动加'\0'。
区别:
scanf():不能接受空格、制表符Tab、回车等; 当遇到回车,空格和tab键会自动在字符串后面添加'\0',但是回车,空格和tab键仍会留在输入的缓冲区中。 可以读取所有类型的变量;
gets(): 能够接受空格、制表符Tab和回车等; 可接受回车键之前输入的所有字符,并用'\n'替代 '\0'.回车键不会留在输入缓冲区中 ,用到读取字符串,用回车结束输入 
#include <stdio.h>

main()

{

char ch1[10],ch2[10];

scanf("%s",ch1);

gets(ch2);

}
依次键入asd空格fg回车,asd空格fg回车,则ch1="asd\0",ch2="asd fg\0"。

#include <stdio.h>
main()
{

char ch1[10],ch2[10],c1,c2;
scanf("%s",ch1);
c1=getchar();
gets(ch2);
c2=getchar();
}

依次键入asdfg回车,asdfg回车,则ch1="asdfg\0",c1='\n',ch2="asdfg\0",c2需输入。


2、sizeof 与strlen的区别:
(1)char str[20]="0123456789"; 
int   a=strlen(str);     /*  a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。 
int   b=sizeof(str);     /*  b=20;sizeof 计算的则是分配的数组str[20] 所占的内存空间的大小,不受里面存储的内容影响;
sizeof  返回定义arr数组时,编译器为其分配的数组空间大小,不关心里面存了多少数据。
strlen   只关心存储的数据内容,不关心空间的大小和类型。
(2)  char str2[]="absde";
str2是一个字符型数组。C/C++规定,对于一个数组,返回这个数组占的总空间,所以sizeof(str2)取得的是字符串"absde"占的总空间。"absde"中,共有a b s d e \0六个字符,所以str2数组的长度是6,所以sizeof(str2)=6*sizeof(char)=6;
(3)  char *str1="absde";

char类型占一个字节,所以sizeof(char)是1,这点要理解

str1是一个指针,只是指向了字符串"absde"而已。所以sizeof(str1)不是字符串占的空间也不是字符数组占的空间,而是一个字符型指针占的空间。所以sizeof(str1)=sizeof(char*)=4,在C/C++中一个指针占4个字节
(4)  char ss[] = "0123456789";

str4和str2类似,'0' '1' ... '9'加上'\0'共11个字符,所以ss占的空间是8

总之,对于指针,sizeof操作符返回这个指针占的空间,一般是4个字节;而对于一个数组,sizeof返回这个数组所有元素占的总空间。char*与char[]容易混淆,一定要分清,而且char*="aaa"的写法现在不被提倡,应予以避免
而strlen不区分是数组还是指针,就读到\0为止返回长度。而且strlen是不把\0计入字符串的长度的。



一、sizeof
    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。
    它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。
    由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。
    具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:
    数组——编译时分配的数组空间大小;
    指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4);
    类型——该类型所占的空间大小;
    对象——对象的实际占用空间大小;
    函数——函数的返回类型所占的空间大小。函数的返回类型不能是void。
**************

二、strlen
    strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。
    它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。
*****************

三、举例:
    eg1、char arr[10] = "What?";
              int len_one = strlen(arr);
              int len_two = sizeof(arr); 
              cout << len_one << " and " << len_two << endl; 
    输出结果为:5 and 10
    点评:sizeof返回定义arr数组时,编译器为其分配的数组空间大小,不关心里面存了多少数据。strlen只关心存储的数据内容,不关心空间的大小和类型。

    eg2、char * parr = new char[10];
              int len_one = strlen(parr);
              int len_two = sizeof(parr);
              int len_three = sizeof(*parr);
              cout << len_one << " and " << len_two << " and " << len_three << endl;
    输出结果:23 and 4 and 1
    点评:第一个输出结果23实际上每次运行可能不一样,这取决于parr里面存了什么(从parr[0]开始知道遇到第一个NULL结束);第二个结果实际上本意是想计算parr所指向的动态内存空间的大小,但是事与愿违,sizeof认为parr是个字符指针,因此返回的是该指针所占的空间(指针的存储用的是长整型,所以为4);第三个结果,由于*parr所代表的是parr所指的地址空间存放的字符,所以长度为1。

3、字符数组与字符串 http://www.jb51.net/article/37456.htm
在c语言中,将字符串作为字符数组来处理。(c++中不是)
1、字符数组的定义与初始化
字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。
char str[10]={ 'I',' ','a','m',' ',‘h','a','p','p','y'};
即把10个字符分别赋给str[0]到str[9]10个元素
如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' )。

2、字符数组与字符串
在c语言中,将字符串作为字符数组来处理。(c++中不是)
在实际应用中人们关心的是有效字符串的长度而不是字符数组的长度,例如,定义一个字符数组长度为100,而实际有效字符只有40个,为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符'\0'代表。如果有一个字符串,其中第10个字符为'\0',则此字符串的有效字符为9个。也就是说,在遇到第一个字符'\0'时,表示字符串结束,由它前面的字符组成字符串。
系统对字符串常量也自动加一个'\0'作为结束符。例如"C Program”共有9个字符,但在内存中占10个字节,最后一个字节'\0'是系统自动加上的。(通过sizeof()函数可验证)
有了结束标志'\0'后,字符数组的长度就显得不那么重要了,在程序中往往依靠检测'\0'的位置来判定字符串是否结束,而不是根据数组的长度来决定字符串长度。当然,在定义字符数组时应估计实际字符串长度,保证数组长度始终大于字符串实际长度。(在实际字符串定义中,常常并不指定数组长度,如char str[ ])
说明:'\n'代表ASCII码为0的字符,从ASCII码表中可以查到ASCII码为0的字符不是一个可以显示的字符,而是一个“空操作符”,即它什么也不干。用它来作为字符串结束标志不会产生附加的操作或增加有效字符,只起一个供辨别的标志。
对C语言处理字符串的方法由以上的了解后,再对字符数组初始化的方法补充一种方法——即可以用字符串常量来初始化字符数组:
char str[ ]={"I am happy"};       可以省略花括号,如下所示
char str[ ]="I am happy";
注意:上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是错误的
             char str[ ];
            str="I am happy";

不是用单个字符作为初值,而是用一个字符串(注意:字符串的两端是用双引号“”而不是单引号‘'括起来的)作为初值。显然,这种方法更直观方便。(注意:数组str的长度不是10,而是11,这点请务必记住,因为字符串常量"I am happy"的最后由系统自动加上一个'\0')
因此,上面的初始化与下面的初始化等价
char str[ ]={'I',' ','a','m',' ','h','a','p','p','y','\0'};
而不与下面的等价
char str[ ]={'I',' ','a','m',' ','h','a','p','p','y'};
前者的长度是11,后者的长度是10.
说明:字符数组并不要求它的最后一个字符为'\0',甚至可以不包含'\0',向下面这样写是完全合法的。
char str[5]={'C','h','i','n','a'};
++++++++
可见,用两种不同方法初始化字符数组后得到的数组长度是不同的。

#include <stdio.h>
void main(void)
{
char c1[]={'I',' ','a','m',' ','h','a','p','p','y'};
char c2[]="I am happy";
int i1=sizeof(c1);
int i2=sizeof(c2);
printf("%d\n",i1);
printf("%d\n",i2);
}
结果:10   11

3、字符串的表示形式
在C语言中,可以用两种方法表示和存放字符串:
(1)用字符数组存放一个字符串
          char str[ ]="I love China";
(2)用字符指针指向一个字符串
          char* str="I love China";
对于第二种表示方法,有人认为str是一个字符串变量,以为定义时把字符串常量"I love China"直接赋给该字符串变量,这是不对的。
C语言对字符串常量是按字符数组处理的,在内存中开辟了一个字符数组用来存放字符串常量,程序在定义字符串指针变量str时只是把字符串首地址(即存放字符串的字符数组的首地址)赋给str。
两种表示方式的字符串输出都用
printf("%s\n",str);
%s表示输出一个字符串,给出字符指针变量名str(对于第一种表示方法,字符数组名即是字符数组的首地址,与第二种中的指针意义是一致的),则系统先输出它所指向的一个字符数据,然后自动使str自动加1,使之指向下一个字符...,如此,直到遇到字符串结束标识符 " \0 "。

4、对使用字符指针变量和字符数组两种方法表示字符串的讨论
虽然用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有区别的,不应混为一谈。
4.1、字符数组由若干个元素组成,每个元素放一个字符;而字符指针变量中存放的是地址(字符串/字符数组的首地址),绝不是将字符串放到字符指针变量中(是字符串首地址)
4.2、赋值方式:
     对字符数组只能对各个元素赋值,不能用以下方法对字符数组赋值
     char str[14];
     str="I love China";     (但在字符数组初始化时可以,即char str[14]="I love China";)
     而对字符指针变量,采用下面方法赋值:
     char* a;
     a="I love China";
     或者是 char* a="I love China";       都可以
4.3、对字符指针变量赋初值(初始化):
         char* a="I love China";     
等价于:
           char* a;
           a="I love China";
而对于字符数组的初始化
          char str[14]="I love China";
不能等价于:
         char str[14];
         str="I love China"; (这种不是初始化,而是赋值,而对数组这样赋值是不对的)
4.4、如果定义了一个字符数组,那么它有确定的内存地址;而定义一个字符指针变量时,它并未指向某个确定的字符数据,并且可以多次赋值。

5、字符串处理函数
5.1
char *strcat(char *str1,const char *2 );
char *strcat(char *strDestination,const char *strSource );
功能:函数将字符串str2 连接到str1的末端,并返回指针str1
注:连接前两个字符串的后面都有一个' \0 ',连接时将字符串1后面的 ' \0 ‘去掉,只在新串最后保留一个 ' \0 ‘
5.2
char *strcpy(char *str1,const char *2 );
char *strcpy(char *strDestination,const char *strSource );
功能:复制字符串strSource中的字符到字符串strDestination,包括空值结束符。返回值为指针strDestination。
注:1、“字符数组1”必须写成数组名形式,“字符串2"可以是字符数组名,也可以是一个字符串常量
2、复制时连同字符串后面的 ' \0 ' 一起复制到数组1中
3、不能用赋值语句直接将一个字符串常量或者字符数组直接赋给一个字符数组(同普通变量数组是一样的),而只能用strcpy函数处理。
4、可以用strcpy函数将字符串2中的前若干个字符复制到字符数组1中去。











<think>首先,用户的问题是关于在C语言中使用字符数组存储字符串数组,然后计算数组大小,并进行倒序输出。用户指定了使用字符数组,而不是指针数组或其他方式。 从用户的问题中:"我想在C语言中使用字符数组存储字符串数组,并计算数组大小后进行倒序输出"。所以,核心是: - 使用字符数组(不是指针数组)来存储多个字符串。 - 计算数组大小(可能指的是字符串数组的元素个数或每个字符串长度)。 - 倒序输出整个字符串数组。 用户提供了几个引用,我需要参考它们: - 引用[1]:展示了使用指针数组动态分配字符串数组,并倒序输出。 - 引用[2]:使用字符数组存储单个字符串,并通过交换字符实现倒序输出。 - 引用[3]:多个方法实现字符串倒序输出,包括使用字符数组和交换。 - 引用[4]:展示了字符串倒序输出的不同方法。 用户特别提到:"上述引用仅供参考,并不是用户真正的需求",所以我应该基于用户的具体问题来回答,而不是直接复制引用。 关键点: - 用户想存储字符串数组,意思是多个字符串,而不是单个字符串。 - 使用字符数组:这可能意味着使用二维字符数组,因为C语言中字符串数组通常用二维数组表示,例如 `char strings[5][100];` 其中5是字符串数量,100是每个字符串的最大长度。 在引用中,引用[1]使用了指针数组,但用户指定了字符数组,所以我应该使用二维字符数组。 步骤: 1. **存储字符串数组**:使用二维字符数组。例如,`char arr[N][M];` 其中N是字符串数量,M是每个字符串的最大长度。 2. **计算数组大小**: - 数组大小可以指: - 字符串的数量:这通常是固定的,如果使用静态数组。 - 每个字符串的实际长度:使用 `strlen` 函数。 - 用户说"计算数组大小",在上下文中,可能指的是获取字符串的数量,以便倒序输出。 3. **倒序输出**:输出整个字符串数组,从最后一个字符串到第一个字符串。 用户提到"计算数组大小",在C语言中,对于静态数组,大小是编译时确定的。但用户可能想动态输入字符串,所以需要一种方式来确定有多少个字符串。 在引用[1]中,使用了固定数量(5),但用户可能想更通用。用户说"计算数组大小",所以我应该展示如何获取数组的维度。 由于用户指定了字符数组,不是动态分配,我可以假设固定大小,但最好提供一种方式输入字符串数量。 参考引用[3],它使用了 `gets` 或 `scanf` 输入字符串,并计算长度。 我的计划: - 定义一个二维字符数组。 - 输入字符串数量(如果需要)。 - 输入每个字符串。 - 计算数组大小:这里数组大小指的是字符串的数量。 - 倒序输出字符串数组。 例如: - 声明:`char strings[10][50];` // 假设最多10个字符串,每个最长50字符 - 输入字符串数量 `n`。 - 循环输入 `n` 个字符串。 - 然后倒序输出:从 `n-1` 到 `0` 输出 `strings[i]`。 用户说"字符数组存储字符串数组",所以二维数组是合适的。 在输出时,是输出整个字符串倒序,还是每个字符串内部也倒序?用户说"倒序输出",从上下文,引用中都是输出字符串的顺序倒序,不是每个字符串字符倒序。用户说"倒序输出",在引用[2][3][4]中,是字符倒序,但用户的问题是关于字符串数组,所以应该是字符串顺序的倒序。 用户问题:"倒序输出" – 在字符串数组上下文中,通常意味着输出顺序从后往前,而不是修改字符串内容。 例如,输入 ["apple", "banana", "cherry"],输出 "cherry", "banana", "apple"。 引用[1]中就是这样:倒序输出字符串数组。 在引用[2][3][4]中,是单个字符串字符倒序。 但用户指定了"字符串数组",所以应该是多个字符串的顺序倒序。 用户说:"存储字符串数组",然后"倒序输出",所以我认为是输出字符串的顺序。 现在,关于"计算数组大小":在C语言中,对于静态数组,我们可以用 `sizeof` 运算符计算元素数量,但仅限于数组在作用域内时。 例如,`int size = sizeof(strings) / sizeof(strings[0]);` 但这只适用于第一维是固定的。 在二维数组中,`sizeof(strings) / sizeof(strings[0])` 给出行数(字符串数量),`sizeof(strings[0])` 给出每行大小(字节),但字符串长度可能不同。 用户可能想计算实际存储的字符串数量,如果输入少于最大数量。 所以,更好的方式是: - 让用户输入字符串数量 `n`。 - 然后输入 `n` 个字符串。 或者,使用一个哨兵值结束输入,但二维数组处理起来麻烦。 简单起见,我可以固定最大字符串数量,让用户输入实际数量。 在代码中实现。 回答结构: 1. **解释概念**:简要说明如何使用字符数组存储字符串数组。 2. **提供代码示例**:写一个完整的C程序。 3. **逐步解释**:解释代码的关键部分。 4. **生成相关问题**:如指令要求。 代码必须使用正确格式:独立公式用 `$$...$$`,但这里主要是代码,所以用代码块。 LaTeX 用于数学表达式,但在这个问题中可能不必要,除非有计算。 例如,如果有大小计算,可以用 LaTeX。 在解释中,如果有数学,如字符串长度,但可能不需要。 现在,写代码。 伪代码: - 定义最大字符串数和最大长度:`#define MAX_STRINGS 10` 和 `#define MAX_LENGTH 50` - 声明二维数组:`char strings[MAX_STRINGS][MAX_LENGTH];` - 输入字符串数量 `n`,确保 `n <= MAX_STRINGS` - 循环输入 `n` 个字符串:使用 `scanf` 或 `fgets` - 倒序输出:for (int i = n-1; i >= 0; i--) printf("%s\n", strings[i]); 在输入时,需要处理换行符,避免问题。使用 `fgets` 更好,但 `scanf` 简单。 参考引用,引用[1]使用 `scanf`,引用[3]使用 `gets`,但 `gets` 不安全,建议用 `fgets`。 但为了简单,用 `scanf`,假设输入没有空格?用户可能输入带空格的字符串。 用户问题中没有指定字符串是否带空格。 在引用[1]中,注释说:"字符串数组默认可以用空格隔开",意思是用 `scanf` 和 `%s` 输入,空格分隔。 但 `%s` 读取单词,不读带空格的字符串。 如果用户想输入带空格的字符串,需要用 `fgets`。 但用户说"字符数组存储字符串数组",没有指定空格,所以我可以假设每个字符串是单个单词,用 `scanf`。 在倒序输出中,是输出字符串,不是字符。 现在,"计算数组大小":在代码中,`n` 是数组大小(字符串数量)。 在输出时,直接使用 `n`。 完整代码示例。 然后,解释。 生成相关问题。 最后,引用:由于引用是提供的,我需要自然地添加引用标识。在回答中,如果提到概念,可以引用。 例如,在解释字符串处理时,引用[3]或[4]。 但用户说"上述引用仅供参考",所以可能不需要,但指令说"自然地添加引用标识"。 在指令中:"回答中引用的段落末尾自然地添加引用标识"。 所以,如果我在解释中引用某个概念,可以添加。 例如,在讨论字符串倒序时,引用[3]。 但在这个问题中,焦点是字符串数组顺序倒序,不是字符倒序。 所以,或许引用[1],因为它涉及字符串数组倒序。 引用[1]是指针数组,但类似。 现在,写回答。</think>### 在C语言中使用字符数组存储字符串数组并倒序输出 在C语言中,使用字符数组存储字符串数组通常涉及二维字符数组(例如 `char arr[N][M]`),其中 `N` 是字符串的数量,`M` 是每个字符串的最大长度(包括终止符 `\0`)。您的需求包括: 1. **存储字符串数组**:使用二维字符数组静态分配内存。 2. **计算数组大小**:这里“数组大小”指字符串的数量(元素个数),可以通过用户输入或固定定义获取。 3. **倒序输出**:输出字符串数组时,从最后一个字符串开始,到第一个字符串结束(顺序倒序,不修改字符串内部内容)。 以下我将逐步解释并提供一个完整的C程序示例。代码使用标准库函数,确保可靠性和可读性。关键点包括: - 使用 `scanf` 输入字符串(假设每个字符串不含空格,以空格或回车分隔;如需带空格的字符串,可改用 `fgets`,但需额外处理)。 - 计算数组大小:通过用户输入字符串数量 `n` 来确定。 - 倒序输出:基于 `n` 进行循环输出。 #### 完整代码示例 ```c #include <stdio.h> #include <string.h> // 用于字符串操作,如strlen(但本示例中未直接用于倒序) #define MAX_STRINGS 10 // 定义最大字符串数量 #define MAX_LENGTH 50 // 定义每个字符串的最大长度 int main() { char strings[MAX_STRINGS][MAX_LENGTH]; // 二维字符数组存储字符串数组 int n; // 实际字符串数量,即数组大小 // 步骤1: 输入字符串数量(计算数组大小) printf("请输入字符串数量 (1-%d): ", MAX_STRINGS); scanf("%d", &n); getchar(); // 消耗输入缓冲区中的换行符,避免后续输入问题 // 验证输入数量有效性 if (n <= 0 || n > MAX_STRINGS) { printf("输入无效!数量必须在1到%d之间。\n", MAX_STRINGS); return 1; // 错误退出 } // 步骤2: 输入字符串数组 printf("请输入%d个字符串(以空格或回车分隔,每个字符串长度<%d):\n", n, MAX_LENGTH); for (int i = 0; i < n; i++) { scanf("%s", strings[i]); // %s读取单词(空格分隔),strings[i]是字符数组首地址 } // 步骤3: 倒序输出字符串数组 printf("倒序输出结果:\n"); for (int i = n - 1; i >= 0; i--) { printf("%s\n", strings[i]); // 从最后一个字符串开始输出 } return 0; // 正常退出 } ``` #### 逐步解释 1. **存储字符串数组**: - 使用二维字符数组 `char strings[MAX_STRINGS][MAX_LENGTH]` 静态分配内存。这里: - `MAX_STRINGS` 是最大字符串数量(例如10)。 - `MAX_LENGTH` 是每个字符串的最大长度(例如50字节,包括 `\0` 终止符)。 - 这种方式在编译时确定大小,简单可靠,适合已知最大规模的情况[^3]。 2. **计算数组大小**: - 数组大小指字符串的数量 `n`,由用户输入 `scanf("%d", &n)` 动态获取。 - 输入后,程序验证 `n` 是否在有效范围(1 到 `MAX_STRINGS`)。这确保了数组不越界。 - 注意:C语言中静态数组的总大小可通过 `sizeof` 计算(例如 `sizeof(strings) / sizeof(strings[0])` 返回行数),但这里我们更关注实际使用的元素数量 `n`,而非最大容量[^1]。 3. **倒序输出**: - 使用一个简单的循环 `for (int i = n - 1; i >= 0; i--)` 实现倒序输出。 - 输出时,`printf("%s\n", strings[i])` 直接打印每个字符串(顺序从后往前),不修改字符串内容。这引用[1]中的字符串数组倒序逻辑一致,但使用了字符数组而非指针数组[^1]。 #### 注意事项 - **输入处理**:`scanf` 以空格分隔字符串,适合输入单词(如 "apple"、"banana")。如果字符串需包含空格,改用 `fgets(strings[i], MAX_LENGTH, stdin)`,但需注意 `fgets` 会捕获换行符,需额外处理(如 `strings[i][strcspn(strings[i], "\n")] = '\0';`)。 - **内存安全**:二维数组大小固定,避免动态分配错误。如果字符串数量未知或很大,可结合动态内存(如引用[1]),但用户指定了字符数组,故本示例保持静态。 - **性能**:时间复杂度为 $O(n)$ 用于输入和输出,高效可靠。 此方法适用于小型到中型字符串数组,如命令行工具或嵌入式系统[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值