C语言学习资料C/C++

C语言从零开始(十四)-字符串处理

2015-11-25  本文已影响2757人  天花板

在软件开发过程中,字符串的操作相当频繁。在标准C语言库中提供了很多字符串处理的函数。今天我们来介绍一些常用的字符串处理函数。

1. 字符串输入输出

1.1 printf() scanf()

之前我们学习过使用“%c”进行字符的输入输出。字符串的输入输出大体相同,唯一的区别是采用“%s”。

请看下面这段代码:

int main()
{
    char str[10];

    printf("Please input 10 words:\n");

    scanf("%s", str);
    printf("%s", str);

    return 0;
}

这段代码实现的功能是从键盘输入一行字串,再打印出来。

注意:

1.2 puts() gets()

这两个函数的定义在string.h中,使用时需要添加

#include<string.h>

puts()

gets()

例如:

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

void main()
{
     char str[10];
     int i;
     printf("Please input a string:\n");
     gets(str);

     printf("The input string is:\n");
     puts(str);
}

同样需要注意数组长度的问题。

2. 字符串转换

字符串经常会用到和其他类型进行转换,那么就会用到下面这些函数。

2.1 itoa()

2.2 atoi()

执行结果:
string = 12345.67 integer = 12345

2.3 sprintf()

这是一个很有用的函数,用法类似printf,只不过它不是把结果打印在屏幕上,而是保存在一个数组中。那么它能做什么呢?说两个最常用的。

int main()
{
    char s[50];
    char who[] = "I";
    char whom[] = "Tianhuaban";

    sprintf(s, "%s am %s.", who, whom);
    printf("%s\n", s);

    sprintf(s, "%10.3f", 3.1415626);
    printf("%s\n", s);

    return 0;
}

第一句sprintf把两个字符数组拼接成了一个新数组,写入s中。第二个sprintf把一个浮点数格式化后写入到字符数组s中。

3. 字符串常用方法

3.1 strcpy

3.2 strcat

3.3 strchr

3.4 strcmp

当s1<s2时,返回值<0

当s1=s2时,返回值=0
  
当s1>s2时,返回值>0
   
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。

3.5 strcpy

3.6 strerror

3.7 strset

3.8 strstr

这八个都是非常经典的函数,具体用法网上非常多。这些不要求记住,只要知道有这些功能的函数即可,需要用的时候立刻能在网上找到答案。

我是天花板,让我们一起在软件开发中自我迭代。
如有任何问题,欢迎与我联系。


上一篇:C语言从零开始(十三)-字符串与字符数组
下一篇:C语言从零开始(十五)-二维数组

上一篇下一篇

猜你喜欢

热点阅读