字符串定义

字符串一共有4种不同的定义方式,分别是:

  1. 字符串常量方式:位于双引号中的任意字符,但并不包括\0,\0由编译器自动添加。
  2. char指针方式
  3. 字符串数组方式

分别举例如下:

1
2
3
4
5
6
7
8
9
char m1[50] = "Hello, and how are you today!";    //字符串常量

char *m2 ="Hello, and how are you today!"; //char 指针方式*

char *mytal[LIM] = {"Adding numbers swiftly",
"Multipying arrurately","Stashing data",
"Following instructions to the letter",
"Understanding the C language"
};      //字符串数组方式*

1、3两种方式定义字符串时,是从静态存储区将整个字符串复制到数组中去;而对于第二种指针赋值的方式,则只是复制字符串的地址。在这种情况下,字符串存储在静态数据区,不应该也不能被修改。

字符串输入

一共有三种不同的字符串输入函数:

  1. scanf(): 最常用的输入函数,可以高度定制输入格式。
  2. gets(): 从系统标准输入设备获得一个字符串,读取字符串遇到\n时,结束读取,并且会丢弃最后一个\n字符。将一个地址作为参数,同时返回这个地址。这个函数不检查预留存储区是否能够容纳实际输入的数据。
  3. fgets(): 类似与gets(),但是提供第二个参数n,用于说明最大读入字符数。fgets()会读取最多n-1个字符或者读完一个换行符位置,由这二者最先满足的那个结束输入。

字符串输出

一共有三种不同的字符串输出函数:

  1. printf(): 最常用的输出函数,可以控制各种各样的输出格式。
  2. puts(): 自动添加换行符,遇到空字符时才会停止。
  3. fputs: 是puts的面向文件的版本,fputs()的第二个参数用来说明要写的文件,但是它并不会自动添加换行符。

总结

  • gets()会分别丢掉输入里的换行符,而puts()会为输出自动添加换行符。

  • fgets()直接存储输入里的换行符,不会丢弃;而fputs()也不会自动为输出添加换行符。

Share on: TwitterFacebookEmail


Flyaway is the owner of this blog.
Comments

So what do you think? Did I miss something? Is any part unclear? Leave your comments below

comments powered by Disqus

Published

Category

programming-language

Tags

Contact