字符串

来源:互联网 发布:安卓软件编程入门教程 编辑:程序博客网 时间:2024/06/05 02:21

C语言中字符串:以0(整数0)结尾的一串字符。
0或者’\0’是一样的,但是和’0’不同。
0标志字符串的结束,但它不是字符串的一部分。计算字符串长度时不包含这个0,字符串以数组的形式存在,以数组或指针的形式访问。
处理字符串的函数#include<string.h>
char ch[5]={‘h’,’e’,’l’,’l’,’o’};
一、将数字字符串转换成整数。
输入一个以回车符结束的字符串(至少10个字符),由数字字符组成,将该字符串转换成整数后输出。

#include<stdio.h>int main(){    int i,n;    char a[10];    printf("input a string\n");    i=0;    while((a[i]=getchar())!='\n')    {        i++;    }        a[i]='\0';        n=0;        for(i=0;a[i]!='\0';i++)        {            if(a[i]<='9'&&a[i]>='0')            {                n=n*10+(a[i]-'0');            }            else //遇见非数字结束转换                break;        }        printf("num=%d\n",n);}

字符串变量
char *str=”hello”;//指针指向了字符数组。
char word[]=”hello”;
char love[10]=”hello”;//在love中占据6个空间,因为有结束的标志0。

字符串以数组的形式存在
不能用运算符对字符串进行运算。
通过数组可以遍历字符串。

如果构造一个字符串:用数组。如果处理一个字符串:用指针。

字符串常量
用双引号括起来的东西。例如:“hello”
hello会被编译器变成一个字符数组,放在某处,这个数组长度是6。结尾还有一个0.
两个相邻的字符串会被自动连接起来。

char*是否为字符串
字符串可以表达为char*的形式,但是char *不一定是字符串。

char*的意思是说:这有一个指针,这个指针指向一个字节或者一串连续的字节,但它并不一定是字符串。本意是:指向字符的指针,可能指向的是字符的数组。

字符串的输入和输出。

char string[8];scanf("%s",string);printf("%s",string);scanf读入一个单词,(到空格,tab或者回车为止)。

上面的输入输出是有问题的。scanf是不安全的,因为不知道要输入的内容的长度。

应该修改为:

char string[8];scanf("%7s",string);//目的是告诉scanf最多只能读入7个字符,超过7个就不要了。printf("%7s",string);

空字符串

char a[10]="";这个数组的长度只有1.这是一个空的字符串,a[0]=='\0'

字符串数组

char **a;//a是个指针,指向另一个指针,那个指针指向一个字符(串)。char a[][];//a是一个二维数组。char a[][10]={"hello"};/*a[0]相当于char[10]*/

这里写图片描述

使用%c输入输出字符数组中的字符

#include<stdio.h>int main(){    int i;    char a[3];    printf("input a string\n");    scanf("%c%c%c",&a[0],&a[1],&a[2]);    printf("结果为\n");    for(i=0;i<3;i++)    {        printf("%c",a[i]);    }    printf("\n");}

用getchar和putchar函数输入输出。

#include<stdio.h>int main(){    int i;    char a[3];    printf("input a string\n");    for(i=0;i<3;i++)    {        a[i]=getchar();    }    printf("结果为\n");    for(i=0;i<3;i++)    {        putchar(a[i]);    }    printf("\n");}

运行结果相同。
用scanf函数和getchar函数给字符数组逐个输入字符的共同特点是:
1、系统不会自动加‘\0’,如果需要字符数组按照字符串存储 ,需要给输入字符后面的元素赋值‘\0’。
2、空白字符(空格、‘\0’、‘\t’)也作为字符输入
3、用printf函数和putchar函数输出字符数组的字符共同特点是:
遇到’\0’不结束,不换行(中间的’\0’变成空格)。

原创粉丝点击