c语言学习之字符串

字符串可以看成字符的一个数组叫字符数组,定义和数组一样定义,为

char i[5];初始化有以下几种

1.     和数组一样定义如char i[4]={‘d’,’z’,’’,’y’,’\0’};这种必须加上’\0’

2.     上述比较麻烦,这样更简单一下 char i[4]=”dzy”,也可以加上{} char i[4]={”dzy”}和上边数组就很像了,但字符串为字符后边加‘\0’就是char i[4]=”dzy”实则为4个字符。

但下边定义为错误的,字符串不能直接赋值给字符数组类似数组。

#include <stdio.h>

void main()

{

       char i[3];

       i="sb"//这是错误的

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

}

字符的输入和输出各有两种先说输入

1当成字符一个个输入需要用for循环如

#include <stdio.h>

void main()

{

       chari[3],j;

       for(j=0;j<3;j++)

              scanf("%c",&i[j]);

       printf("%s/n",i);

}

这个运行结果为

输入的为dzy因为for循环输入的仅为单个字符没有输入\0所以输出到y时还会输出但这样输入不能输入空格所以用getchar可以

2.#include<stdio.h>

void main()

{

       chari[3],j;

       for(j=0;j<3;j++)

       i[j]=getchar();

       printf("%s/n",i);

}

d y 后边还有的原因和上述一样

上述的比较麻烦用以下两种比较简单

3.     用%s可以整个输入且直接会在后边加\0,可以用scanf输入但不能输入空格因为scanf遇到空格就结束了如下

#include<stdio.h>

voidmain()

{

       char i[3],j;

       scanf("%s",&i);

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

}

仅能输出how

用gets函数可解决

4 #include <stdio.h>

void main()

{

       chari[12],j;

       gets(i);

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

}

输出和输入一样有以下几种

1可单个字符输出如

#include <stdio.h>

void main()

{

       chari[12],j;

       gets(i);

for(j=0;j<12;j++)

printf("%c",i[j]);

}

2可以用putchar函数进行输出单个字符如

#include <stdio.h>

void main()

{

       chari[12],j;

       gets(i);

for(j=0;j<12;j++)

putchar(i[j]);

}

比较麻烦还是用%s整个输出比较好如下

#include <stdio.h>

void main()

{

       chari[12],j;

       gets(i);

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

}

3可用字符串输出函数puts进行输出

#include<stdio.h>

void main()

{

       chara[8];

       gets(a);

       puts(a);

}

这样更为简单呢另外puts函数还可作为指针进行指定输出如

#include<stdio.h>

void main()

{

       chara[8];

       gets(a);

       puts(a+3);

}


可输出第四个字母及以后的字母。

总结:不是特别要求用gets函数整个输入,用%s printf或puts 进行整个输出。

一段有意思的代码

#include<stdio.h>

void main()

{

       chara[80]="Your name is ";

       printf("Hienter your name ok?\n");

       gets(a+13);

       puts(a);

}

这样就可以不再单纯的用printf函数了,可以用数组,需要注意的是gets函数相加的必须是数组初始化的个数如上边就必须是13若是14的话puts函数就会读取到数组is后边的14位的一个空语句也就停止了,而是12的话就会覆盖到is的s所以必须是相加13也就是字符数组的第14个元素。后来我在字符数组上加了个空格也就是s后边还有空格。

猜你喜欢

转载自blog.csdn.net/dy1314fowever/article/details/80355693