c语言字符串

本文详细介绍了C语言中字符串的定义、初始化、使用注意事项、循环遍历及二维数组的应用,包括字符串长度、字节数计算及包含特定字符的判断方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//
//  main.c
//  c字符串处理
//
//  Created by stevenchang on 9/3/15.
//  Copyright (c) 2015 cz. All rights reserved.
//

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

void forString(char str[]);   //声明一个函数用于遍历字符串中的元素
int contains_char(char str[], char value);   //判断字符串中是否包含某个字符,0:否;1:是

int main(int argc, const char * argv[]) {
    // insert code here...
//    printf("Hello, World!\n");
    
    /**
     1.字符串的定义:
     2.字符串的初始化;
     3.字符串的使用注意;
     4.字符串的循环;
     5.字符串数组;
     */
    
    //1.字符串的定义:c语言中是没有string类型来表示字符串的
    //使用的是char []数组来表示一个字符串。
    
    //2.字符串的初始化
    char str1[] = "stevenchang";   //初始化一个字符串,实际的长度为12(stevenchang+1个\0)
    unsigned long length1 = strlen(str1);     //字符串的长度
    int byteNum1 = sizeof(str1);     //字符串的长度,这里的长度指得是字节数,并不是实际个数
    printf("%s长度为%ld,字节数为%d\n",str1, length1, byteNum1);
    forString(str1);
    
    printf("===================\n");
    char str2[] = {'2','3','4',0};   //字符串末尾会默认以'\0‘(0和'\0'的意思是一样的)结尾
    unsigned long length2 = strlen(str2);     //字符串的长度
    int byteNum2 = sizeof(str2);    //字符串的字节数
    printf("%s长度为%ld,字节数为%d\n", str2, length2, byteNum2);
    forString(str2);
    
    printf("=========================\n");
    char str3[] = {'1','3','r','6','\0'};
    unsigned long length3 = strlen(str3);     //字符串的长度
    int byteNum3 = sizeof(str3);      //字符串的字节数
    printf("%s长度为%ld,字节数为%d\n", str3, length3, byteNum3);
    forString(str3);
    int result = contains_char(str3, '1');
    printf("是否包含字符:%d\n",result);
    
//    printf("=======================\n");
//    char str4[] = {'1','2','3'};    //这只是一个char[],并不是字符串
//    unsigned long length4 = strlen(str4);     //字符串的长度
//    int byteNum4 = sizeof(str4);    //字符串的字节数
//    printf("%s长度为%ld,字节数为%d", str4, length4, byteNum4);
    
    /**
     3.字符串使用注意:
        字符串都是以'\0'结尾的;
        strlen() 统计的是除‘\0’之外的个数
        sizeof() 统计的所有字符
        输出字符串使用的是%s
     */
    
    printf("=========二维字符串数组================\n");
    char str5[][6] = {{'1','3','4','\0'}, {'2','5','\0'}};  //二维字符串数组
    char str6[][5] = {"134141",'\0',"1341341"};
    printf("%s\n",str5[0]);   //默认打出的是第一个字符串
    printf("%s\n",str5[1]);    //打印出来得时第二个字符串
    printf("%s\n",str6[0]);  //打印的字符串是以'\0'结尾的
    return 0;
}

/**
 此函数用于遍历字符串
 */
void forString(char str[]) {
    for (int i = 0; i < strlen(str); i++) {
        printf("%c\t",str[i]);
        if (i == strlen(str) - 1) {
            printf("\n");
        }
    }
}

/**
 判断字符串中是否包含某个字符
 */
int contains_char(char str[], char value) {
    int i = -1;
    
    while (str[++i]!=value && str[i]) ;
    
    return str[i]?1:0;
}

注释:

列出了字符串的定义,初始化,遍历,求字节书,字符串长度以及二维数组的定义,初始化。

这里只使用了strlen这一个字符串的方法,如果想学习其他的方法,可以自己进行自学。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值