C语言-字符串

作者: Jimmy_L_Wang | 来源:发表于2018-09-27 13:55 被阅读1次

字符串

字符串最适合放在char类型数组中存储。

例如要表示字符串"ABC",数组元素必须按一下顺序依次保存:

‘A’ 'B' 'C' '\0'

末尾null字符\0是字符串结束的"标志"

printf("size %lu\n",sizeof("ABC")); //size 4

字符串字面量的中间可以有null字符,不过应注意区分。字符串字面量"ABC"是字符串,而字符串字面量"ABC\0CD"不是字符串。

空字符串

char ns[] = ""; //元素个数是1,因为内部还有null字符

字符串的读取

#include <stdio.h>

int main(void)
{
    char name[100]; //为读取的字符串附加null字符并存储
    
    printf("Please input your name: \n");
    scanf("%s", name);//注意:scanf函数也不能加上& ! !
    printf("Bonsvoir, Mr / Miss %s !! \n", name);
    return 0;
}

字符串数组

#include <stdio.h>

int main(void)
{
    char cs[][6] = {"Turbo", "NA", "DOHC"};
    
    for (int i = 0; i < 3; i++) {
        printf("cs[%d] = \"%s\"\n", i, cs[i]);
    }
    /*
     cs[0] = "Turbo"
     cs[1] = "NA"
     cs[2] = "DOHC"
     */
     return 0;
}

字符串处理

字符串长度

/**
 返回字符串长度

 @param s 字符串s
 @return 字符串长度
 */
int str_length(const char s[])
{
    int len = 0;
    while (s[len]) { //因为字符串最后一个元素是\0
        len++;
    }
    return len;
}

显示字符串

/**
 显示字符串(打印字符串)

 @param s 字符串s
 */
void put_string(const char s[])
{
    int i = 0;
    while (s[i]) {
        putchar(s[i++]);
    }
}

数字字符的出现次数

/**
 数字字符的出现次数

 @param s 需要计算的字符串
 @param cnt 保存数字字符的数组
 */
void str_dcount(const char s[], int cnt[])
{
    //将字符串s中的数字字符保存至数组cnt
    int i = 0;
    while (s[i]) {
        if (s[i] >= '0' && s[i] <= '9') {
            cnt[s[i] - '0']++;
        }
        i++;
    }
}

英文字符的大小写转换

/**
 将英文字符转换为大写字母

 @param s 字符串
 */
void str_toupper(char s[])
{
    int i = 0;
    while (s[i]) {
        s[i] = toupper(s[i]);
        i++;
    }
}

/**
 将英文字符转换为小写字母

 @param s 字符串
 */
void str_tolower(char s[])
{
    int i = 0;
    while (s[i]) {
        s[i] = tolower(s[i]);
        i++;
    }
}

字符串数组的参数传递

/**
 显示字符串数组(字符串数组的参数传递)

 @param s 字符串数组
 @param n 数组元素数量
 */
void put_strary(const char s[][6], int n)
{
    for (int i = 0; i < n; i++) {
        printf("s[%d] = \"%s\"\n", i, s[i]);
    }
}

....

char cs[][6] = {"Turbo", "NA", "DOHC"};
put_strary(cs, 3);

相关文章

  • C语言- 字符、字符数组

    字符数组和字符串 C语言中没有字符串这种数据类型,C语言中通过char型数组来替代字符串的功能。C语言中的字符串一...

  • 2018-05-13

    C语言:c语言中没有字符串类型,也没有字符串变量,字符串是放在字符型数组中的。 C语言数变量类型:整型、浮点型、v...

  • Redis 源码简洁剖析 02 - SDS 字符串

    C 语言的字符串函数 C 语言 string 函数[https://devdocs.io/c-strings/],...

  • C++11新特性(20)-用string对象处理文件名

    C风格字符串 从C语言开始,就已经实现了对字符串的支持。为了处理C风格字符串,C语言标准库提供了一组函数,它们被定...

  • C语言 字符串反转

    C语言 之 字符串反转

  • iOS开发系列文章[转]

    C语言 iOS开发系列--C语言之基础知识 iOS开发系列--C语言之数组和字符串 iOS开发系列--C语言之指针...

  • ==大疆-字符串最大

    字符串最大时间限制:C/C++语言 1000MS;其他语言 3000MS内存限制:C/C++语言 65536KB;...

  • Redis数据结构

    1 简单动态字符串 Redis 是用 C 语言写的,但是对于Redis的字符串,却不是 C 语言中的字符串(即以空...

  • Redis5.x底层数据结构之——字符串

    1 简单动态字符串 Redis是用C语言写的,但是Redis的字符串不是 C 语言中的字符串(即以空字符’\0’结...

  • 字符串类常用操作方法

    一、不可变字符串(NSString) // 在C语言中,使用ASCII编码的字符作为字符串,并且C语言中,并没有...

网友评论

    本文标题:C语言-字符串

    本文链接:https://www.haomeiwen.com/subject/xuwsoftx.html