b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

C语言字符串操作函数概述

电脑杂谈  发布时间:2020-04-05 20:19:43  来源:网络整理

c语言strchr函数_c语言%c函数_c++ strchr函数

与字符串相关的操作的头文件: string.h

原型: strcpy(str1c语言strchr函数,str2);

功能: 将字符串str2复制到字符串str1并覆盖str1的原始字符串,该字符串可用于为字符串变量分配值

返回: str1

注意:

1)字符串str2将覆盖str1中的所有字符,

2)字符串str2的长度不能超过str1,

3)复制原则: 从第一个元素开始,以\ 0结尾

int main(int argc, char const *argv[])
{
    char *str1 = "hello world";
    char *str2;
    // 功能:把str1的内容拷贝到str2,参数为字符数组指针
    strcpy(str2, str1);
    printf("str2 = %s\n", str2);
    char str3[15] = "hello\0 world";
    char str4[15];
    //拷贝原理:从首元素开始,遇到\0结束
    strcpy(str4, str3);
    printf("str4 = %s\n", str4);
    return 0;
}

输出

str2 = hello world
str4 = hello

c++ strchr函数_c语言strchr函数_c语言%c函数

原型: strncpy(str1,str2,n);

功能: 将字符串str2的前n个字符复制到字符串str1的前n个字符

返回: str1

注意:

1)str1中的所有字符串都不会被清除,只更改前n个字符串,

2)n不能大于字符串str1,str2的长度

3)但是,如果使用strncpy_s,则将清除str1中的所有字符串

int main(int argc, char const *argv[])
{
    char str1[] = "day day up";
    char str2[] = "you are";
    strncpy(str1, str2, strlen(str2));
    printf("%s\n", str1); // you are up
    return 0;
}

原型: strcat(str1,str2);

功能: 将字符串str2添加到字符串str1的末尾,即连接两个字符串

返回: str1

c语言%c函数_c语言strchr函数_c++ strchr函数

int main(int argc, char const *argv[])
{
    char str1[] = "hello ";
    char str2[] = "world";
    strcat(str1, str2); // hello world
    printf("%s\n", str1);
    return 0;
}

原型: strncat(str1,str2,n);

功能: 将字符串str2的前n个字符添加到字符串str1的末尾

返回: str1

注意: 拼接后的长度不能超过字符串数组str1的长度

int main(int argc, char const *argv[])
{
    char str1[] = "hello ";
    char str2[] = "world";
    strncat(str1, str2, 2); // hello wo
    printf("%s\n", str1);
    return 0;
}

原型: strlen(str1);

功能: 计算字符串str1的长度

返回: 一个int值

注意: 字符串的长度不包含字符'\ 0'

{
    char *str1 = "hello world";
    char *str2 = "hello,\0 kite";
    int l1 = strlen(str1);
    int l2 = strlen(str2);
    printf("l1 = %d\n", l1); // 11
    printf("l2 = %d\n", l2); // 6
    return 0;
}

c语言%c函数_c语言strchr函数_c++ strchr函数

原型: strcmp(str1,str2);

功能: 比较两个字符串,如果两个字符串相等,则返回0;如果str1大于str2(大于,则表示比较从两个字符串的第一个字符开始,如果两个字符相同,则继续比较. 如果发现两个字符不相等,并且str1中字符的ASCII码大于str2中的字符,表示str1大于str2),并返回正数;如果str1小于str2,则返回负数(不一定为-1);如果字符串str1的长度大于str2,并且str2的字符与str1前面的字符相同,则相对于str1大于str2的字符串也进行处理

原型2: strncmp(str1,str2,n);

功能2: 比较两个字符串的前n个字符

原型3: stricmp(str1,str2); (在Windows中使用stricmp,在Linux中使用strcasecmp)

功能3: 忽略两个字符串中的大小写比较字符串,这对大小写不敏感

注意: 如果直接在VS2017中使用stricmp,将提示以下错误:

查看原因和解决方法: stricmp错误,即改用_stricmp

返回: 0或正数或负数

char str1[] = "Wearecsdn!";
char str2[] = "Wearecsdn!";
char str3[] = "Wearea!";
char str4[] = "Wearef!";
char str5[] = "Weare";
char str6[] = "weAreCsdn!";
 
int cmp1 = strcmp(str1, str2);        //cmp1=0
int cmp2 = strcmp(str1, str3);        //cmp2=1
int cmp3 = strcmp(str1, str4);        //cmp3=-1
int cmp4 = strcmp(str1, str5);        //cmp4=1
 
int cmp5 = strncmp(str1, str2, 5);    //cmp5=0
int cmp6 = strncmp(str1, str3, 5);    //cmp6=0
int cmp7 = strncmp(str1, str4, 5);    //cmp7=0
int cmp8 = strncmp(str1, str5, 5);    //cmp8=0
 
int cmp9 = _stricmp(str1, str6);      //cmp9=0

c语言strchr函数_c++ strchr函数_c语言%c函数

原型: strchr(str,c);

功能: 找到字符c在字符串中首次出现的位置

原型2: strrchr(str,c);

功能2: 从后到前查找字符串str中字符c的第一个出现

原型3: strstr(str1,str2);

功能3: 在字符串str1中查找字符串str2的位置,如果找到,则返回str1中str2的第一个字符的位置的指针,如果找不到,则返回NULL

返回: 指向字符c位置的指针,如果找不到字符c,则返回空指针NULL

{
    // strchr查询字符 和 strstr查询字符串函数
    char *str = "no one can help you";
    // 在字符串中查询字符 h ,如果存在,返回 h 的地址
    // 如果不存在,返回NULL
    char *s = strchr(str, 'h');
    if(s){
        printf("存在字符:%c\n", *s);
    } else {
        printf("不存在字符\n");
    }
    // 如果存在,返回字符串所在位置的首地址
    // 否则返回NULL
    char *st = strstr(str, "help");
    if(st){
        printf("存在字符串:%p\n", *st); 
        //注意:此处返回字符串所在元素首地址,也就是一个字符串数组,所以不用取地址值*st
        // 因为对一个字符串(字符数粗)取地址值 *buf 是没有用的,它本来就是一个指针,取到的
        // 会是指针的值,而非指针所指向的值
        // 关于指针类型变量:&a取地址是值所在的地址值(指针变量),*st表示指针变量所指向的值,和定义时一样
        // 这两个的操作刚好是相反的
    } else {
        printf("不在在字符串\n");
    }
    return 0;
}

原型: strpbrk(str1c语言strchr函数,str2);

功能: 依次检查字符串str1中的字符,当字符串str2中也包含测试字符时,停止检查并返回字符位置

返回: 指向str1中两个字符串中包含的第一个字符的位置的指针

char str1[] = "We12are34csdn!";
char str2[] = "32";
 
char* ret1;
 
ret1 = strpbrk(str1, str2);   //*ret1 = 2
 
int r1 = ret1 - str1;         //r1 = 3
 
printf("%c\n", *ret1);
printf("%d\n", r1);

atoi(str); //将字符串转换为int整数

atof(str); //将字符串转换为双浮点数

atol(str); //将字符串转换为长整数


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-165119-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...