• C语言字符串及其函数


    #include<stdio.h>
    int main(){
        printf("输入一个整数");
        int n;
        scanf("%d",&n); 
        char a[n];
        getchar();
        for(int i=0;i<n;i++){
            scanf("%c",&a[i]);
        }
        a[n]='';
        printf("%s",a);
        
    } 
    View Code

    strlen函数

    #include<stdio.h>
    #include<string.h>
    //最后一位还要存储一个'/0' 
    int main(){
        char str[]="大家好才是正的哈";
        printf("%s
    ",str);
        printf("sizeiof的输出:%d",sizeof(str));
    printf("strlen的输出%u",strlen(str));
    }
    View Code

    strcpy

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        char str1[]="I love China";
        char str2[]="I love girl";
        char str3[50];
        strcpy(str1,str2);//打印到出现'/0'的时候读取停止 
        strcpy(str3,"copy successful");
        printf("str1=%s
    ",str1);
        printf("str2=%s
    ",str2);
            printf("str3=%s
    ",str3);    
    } 
    View Code

    strncpy

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        char str1[]="IloveChina";
        char str2[]="qweedadafc";
        char str3[50];
        strncpy(str1,str2,7);//控制到拷贝的 
        str1[7]='';
        strcpy(str3,"copy successful");
        printf("str1=%s
    ",str1);
        printf("str2=%s
    ",str2);
            printf("str3=%s
    ",str3);    
    } 
    View Code

    strcat

    #include<stdio.h>
    #include<string.h>
    //字符串的拼接 
    //strncat会自动添加结束符 
    int main()
    {
        char str1[]="I love China";
        char str2[]="I love girl";
        strcat(str1," ");
        strcat(str1,str2);//拷贝到出现'/0'的时候读取停止 
        printf("str1=%s
    ",str1);
        printf("str2=%s
    ",str2);
    } 
    View Code

    strcmp

    #include<stdio.h>
    #include<string.h>
    int main()
    //比较字符串 
    {
        char str1[]="dalao";
        char str2[]="dalao";
        if(!strcmp(str1,str2)){
            printf("它们相等");
        }else{
            printf("它们不等");
        }
    } 
    View Code

     对于函数的实现;

    拷贝字符串 —— strcpy 和 strncpy 函数,

    #include<iostream>
    using namespace std;
    #define MAX 1024
    int main(){
    	char str1[MAX];
    	char str2[MAX];
    	char *target1=str1;
    	char *target2=str2;
    	printf("输入一个字符串到str1中");
    	fgets(str1,MAX,stdin);
    	printf("开始拷贝str1内容到str2
    ");
    	while((*target2++=*target1++)!=''){
    	}
    	printf("拷贝完毕");
    	printf("%s",str2);
    }
    
    #include <stdio.h>
    
    #define MAX 1024
    
    int main()
    {
            char str1[MAX];
            char str2[MAX];
    
            char *target1 = str1;
            char *target2 = str2;
    
            char ch;
            int n;
    
            printf("请输入一个字符串到 str1 中:");
            fgets(str1, MAX, stdin);
    
            printf("请输入需要拷贝的字符个数:");
            scanf("%d", &n);
    
            printf("开始拷贝 str1 的内容到 str2 中...
    ");
            while (n--)
            {
                   ch = *target2++ = *target1++;
                   if (ch == '')
                   {
                           break;
                   }
                   if ((int)ch < 0)
                   {
                           *target2++ = *target1++;
                           *target2++ = *target1++;
                   }
            }
    
            *target2 = '';
    
            printf("拷贝完毕!
    ");
            printf("现在,str2 中的内容是:%s
    ", str2);
    
            return 0;
    }
    

    连接字符串 —— strcat 和 strncat 函数

    #include<iostream>
    using namespace std;
    #define MAX 1024
    int main(){
    	char str1[2*MAX];//确保连接后不越界
    	char str2[MAX];
    	char *target1=str1;
    	char *target2=str2;
    	printf("输入第一个字符串") ;
    	fgets(str1,MAX,stdin);
    	printf("请输入第二个字符");
    	fgets(str2,MAX,stdin);
    	//将指针指向第一个字符的末尾处
    	while(*target1++!='');
    	target1-=2;//去掉/0 与/n
    	//连接字符串
    	while((*target1++=*target2++)!='');
    	printf("%s",str1);
    	 
    }
    

     比较字符串 —— strcmp 和 strncmp 函数R+o

    #include <stdio.h>
    
    #define MAX 1024
    
    int main()
    {
            char str1[MAX];
            char str2[MAX];
    
            char *target1 = str1;
            char *target2 = str2;
    
            int index = 1;
    
            printf("请输入第一个字符串:");
            fgets(str1, MAX, stdin);
    
            printf("请输入第二个字符串:");
            fgets(str2, MAX, stdin);
    
            while (*target1 != '' && *target2 != '')
            {
                    if (*target1++ != *target2++)
                    {
                           break;
                    }
                    index++;
            }
    
            if (*target1 == '' && *target2 == '')
            {
                    printf("两个字符串完全一致!
    ");
            }
            else
            {
                    printf("两个字符串不完全相同,第 %d 个字符出现不同!
    ", index);
            }
    
            return 0;
    }
    
    #include <stdio.h>
    
    #define MAX 1024
    
    int main()
    {
            char str1[MAX];
            char str2[MAX];
    
            char *target1 = str1;
            char *target2 = str2;
    
            char ch;
            int index = 1, n;
    
            printf("请输入第一个字符串:");
            fgets(str1, MAX, stdin);
    
            printf("请输入第二个字符串:");
            fgets(str2, MAX, stdin);
    
            printf("请输入需要对比的字符个数:");
            scanf("%d", &n);
    
            while (n && *target1 != '' && *target2 != '')
            {
                    ch = *target1;
                    if (ch < 0)
                    {
                            if (*target1++ != *target2++ || *target1++ != *target2++)
                            {
                                    break;
                            }
                    }
                    if (*target1++ != *target2++)
                    {
                           break;
                    }
                    index++;
                    n--;
            }
    
            if ((n == 0) || (*target1 == '' && *target2 == ''))
            {
                    printf("两个字符串的前 %d 个字符完全相同!
    ", index);
            }
            else
            {
                    printf("两个字符串不完全相同,第 %d 个字符出现不同!
    ", index);
            }
    
            return 0;
    }
    View Code
  • 相关阅读:
    推荐网页布局设计流程
    (IE6下)png透明问题分析及解决办法
    [收藏]几个常用的用正则表达式验证字符串的函数
    JavaScript 操作 Cookie
    javascript 获取控件的绝对位置
    Css命名规范
    掌握JavaScript语言的思想前提
    高效的Javascript 字符串操作类
    常用正则表达式
    简单的dom遍历
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/11098986.html
Copyright © 2020-2023  润新知