//
// 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这一个字符串的方法,如果想学习其他的方法,可以自己进行自学。