字符数组……

目录

一,字符数组是什么?

二,定义

三,字符串的储存

四,字符数组初始化

 1.用单个字符串对字符数组初始化

  2.用字符串常量对字符数组初始化

五,字符数组的输入输出

六,字符串处理函数

1.puts函数

2.gets函数

3.strcat函数

4.strcpy函数

5.strcmp函数

6.strlen函数

7.strlwr函数

8.strupr函数


一,字符数组是什么?

             用来存放字符数据的数组(字符串),字符数组中的各元素依次存放字符串的各字符

二,定义

           char 数组名[常量表达式];

例:  char c[9];

      C数组具有6个元素,可以存放长度小于或等于5的字符串

三,字符串的储存

例: char c[10]="c program";

该数组在计算机中储存形式为:

c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]
c program\0

注:字符串实际占有单元的数量等于字符串长度+1

四,字符数组初始化

 1.用单个字符串对字符数组初始化

  例: char c[10]={'c','','p','r','o','g','r','a','m','\0'};

(把10个字符依次赋给c[0]~c[9]这10个元素)

c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]
c program\0

  • 如果在定义字符数组是不进行初始化,则数组中各元素的值是不可预料的
  • 如果花括号中提供的初始个数(即字符个数)大于数组长度,则程序语法错误
  • 如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度
  • 如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为字符串(即'\0')

  2.用字符串常量对字符数组初始化

例:

(1) char str[6]={"CHINA");

  (2)   char str[6]="CHINA";

  (3)   char str[]="CHINA";

  (4)   char c[12]={"HOW ARW YOU"};

  与    char c[]={'H','O','W','','A','R','W','','T','O','U'};

  • 将字符串储存到字符数组中,字符串和第一个'\0'构成有效字符串。对字符串的操作,就是对字符数组的操作
  • 普通数组中的元素是确定的,一般用下标控制循环;而字符串使用结束符'\0'来控制循环

五,字符数组的输入输出

1.单个字符输入输出(用格式符%c或字符输入函数)

#include<stdio.h>
int main ()
{
	char c[5];
	int i;
	for(i=0;i<5;i++)
	    scanf("%c",&c[i]);
	for(i=0;i<5;i++)
	    printf("%c",c[i]);
	printf("\n");
	return 0;
}

2.字符串整体和部分输入输出(用格式符%s)

     char str[6];

    scanf("%s",str);

  • 输入输出必须是以字符串的地址形式出现
  • 也可以是字符串常量:printf (“%s\n","book");
  • 只能输入不包括空格、\t和\n的字符串
  • 如果要输入空格,用gets函数
  • 数组名前不加&符号 

例:

     char str[10];

     scanf("%s",str);

     printf("%s\n",str);

输入:how are you

输出: how

注:用%s输出字符串时,从输出项提供的地址开始输出,直到遇到字符结束串'\0'为止

六,字符串处理函数

puts 输出字符串

gets 输入字符串

(使用时注意程序前加:#include<stdio.h>)

strcat 字符串连接

strcpy 字符串复制

strcmp 字符串比较

strlen 字符串长度

strlwr 将字符串中大写转换为小写字母

strupr 将字符串中小写转换为大写字母

(使用时注意程序前加:#include<string.h>

1.puts函数

形式:puts(字符数组)

作用:是将一个字符串(以'\0'结束的字符序列)输出到终端并换行

int main()
{
char str[]={"Chain"};
puts(str);//其作用等价printf("%s",str);

2.gets函数

形式:gets(字符数组)

作用:从终端输入一个字符串到字符数组,并且得到一个函数值。其可以输入带空格的字符串,用scanf的%s格式不行

int main()
{
char str[6];
gets(str);
puts(str);
}

输入:how are you

输出:how are you

3.strcat函数

形式:strcat(字符数组1,字符数组2)

作用:连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址

char str1[30]={"people's Republic of"};
char str2[]={"Chain"};
printf("%s",strcat(str1,str2));

输出:People's Republic of China

4.strcpy函数

形式:strcpy(字符数组1,字符串2)

作用:将字符串2复制到字符数组1中

char str[10],str2[]={"China"};
strcpy(str1,str2)
//不能用str1=str2来赋值
//字符数组1的长度不应小于字符串2的长度

5.strcmp函数

形式: strcmp(字符串1,字符串2)

作用:比较字符串1和字符串2

1.)确定字符串大小的基本原则:

按照串中对应位置字符的ASC||码值的大小确定大小

2.)比较结果由函数值带回(返回两个字符之差)

  • 如果字符串1=字符串2,函数值为0
  • 如果字符串1>字符串2,函数值为正整数
  • 如果字符串1<字符串2,函数值为负整数

6.strlen函数

形式:strlen(字符数组)

作用:测试字符串长度的函数。函数的值为字符串中的数据长度(不包括’\0'在内)

char str[10]={"China"};
printf("%d",strlen(str));
//输出结果表示10,而是5,也可以直接测试字符串常量的长度,如strlen("China");

7.strlwr函数

形式:strlwr(字符串)

作用:将字符串中大写字母转换为小写

8.strupr函数

形式:strupr(字符串)

作用:将字符串中小写字母转换为大写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,作为一个语言模型,我无法运行代码或提供代码示例。但我可以为您解释和回答您的问题。 1. 变量的设置 a. 创建索引数组 在IDL中,可以使用bindgen()和findgen()函数来创建索引数组。 bindgen(n)函数将创建一个长度为n的数组,每个元素的值等于其下标。 ``` IDL> a = bindgen(5) IDL> print, a 0 1 2 3 4 ``` findgen(n)函数将创建一个长度为n的数组,每个元素的值等于其下标加1。 ``` IDL> a = findgen(5) IDL> print, a 1 2 3 4 5 ``` b. 创建全零数组 使用IDL中的flarr()函数可以创建一个全零数组。 ``` IDL> a = fltarr(3,4) IDL> print, a 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ``` c. 创建字符串及字符串数组 在IDL中,可以使用字符串常量或变量来创建单个字符串。例如: ``` IDL> str = 'Hello World' IDL> print, str Hello World ``` 要创建字符串数组,可以使用字符串常量或变量,并将它们放在花括号中。例如: ``` IDL> strs = ['Hello', 'World'] IDL> print, strs Hello World ``` 2. 字符串数组的使用 a. Strtrim() Strtrim()函数可用于删除字符串开头和结尾的空格。例如: ``` IDL> str = ' Hello World ' IDL> str = strtrim(str) IDL> print, str Hello World ``` b. Strmid() Strmid()函数可用于提取字符串的子串。例如: ``` IDL> str = 'Hello World' IDL> substr = strmid(str, 3, 5) IDL> print, substr lo Wo ``` c. Strpos() Strpos()函数可用于在字符串中查找另一个子字符串的位置。例如: ``` IDL> str = 'Hello World' IDL> pos = strpos(str, 'Wo') IDL> print, pos 7 ``` 3. 创建结构体并访问它 在IDL中,可以使用struct定义结构体类型。例如: ``` IDL> struct = {name:'', age:0, gender:''} ``` 要访问结构体的成员,可以使用"."运算符。例如: ``` IDL> person = {name:'John', age:30, gender:'male'} IDL> print, person.name John ``` 4. 创建指针并访问,释放它。 在IDL中,可以使用PTR_NEW()函数创建指针,并使用PTR_FREE()函数释放指针。例如: ``` IDL> ptr = PTR_NEW(42) IDL> print, *ptr 42 IDL> PTR_FREE, ptr ``` 5. 运算符号的使用 a. 数学运算符 IDL支持常见的数学运算符,包括幂(^)、取余(mod)、取小(<)和取大(>)等。 b. 逻辑运算符 IDL支持逻辑运算符&&, ||, 和 ~。 c. 关系运算符 IDL支持关系运算符EQ、NE、GE、GT、LE、LT。 d. 数组运算符 IDL支持数组运算符#、##、求逆、转置运算等。 6. 数组的操作 a. Size() Size()函数可用于获取数组的大小。例如: ``` IDL> a = [[1,2,3],[4,5,6]] IDL> print, size(a) 2 3 ``` b. where() where()函数可用于返回数组中满足条件的元素索引。例如: ``` IDL> a = [1,2,3,4,5] IDL> indices = where(a GT 3) IDL> print, indices 3 4 ``` c. reform() reform()函数可用于改变数组的形状。例如: ``` IDL> a = [[1,2],[3,4],[5,6]] IDL> b = reform(a, 2, 3) IDL> print, b 1 2 3 4 5 6 ``` d. rebin() rebin()函数可用于更改数组的大小。例如: ``` IDL> a = [1,2,3,4,5,6,7,8] IDL> b = rebin(a, 2, 4) IDL> print, b 1 3 5 7 2 4 6 8 ``` e. congrid() congrid()函数可用于插值数组。例如: ``` IDL> a = [[1,2],[3,4]] IDL> b = congrid(a, 3, 3) IDL> print, b 1 1.66667 2 2 2.66667 3 3 3.66667 4 ``` f. rotate() rotate()函数可用于旋转数组。例如: ``` IDL> a = [[1,2],[3,4]] IDL> b = rotate(a, 1) IDL> print, b 3 1 4 2 ``` g. transpose() transpose()函数可用于转置数组。例如: ``` IDL> a = [[1,2],[3,4],[5,6]] IDL> b = transpose(a) IDL> print, b 1 3 5 2 4 6 ``` h. reverse() reverse()函数可用于反转数组。例如: ``` IDL> a = [1,2,3,4,5] IDL> b = reverse(a) IDL> print, b 5 4 3 2 1 ``` i. make_array() make_array()函数可用于创建指定大小和类型的数组。例如: ``` IDL> a = make_array(2, 3, /DOUBLE) IDL> print, a 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值