chars[5]="abcd"; //字符串以"\0"结尾 ,注意这里数组的长度是5,而不是4!
"\0"表示0 是一个转义字符
例子:
chars1[38]="www.yjxsoft";
char s2[]=".com";
请编写一段代码,把字符串s2追加到s1后边
使printf("%s\n",s1);打印结果为 www.yjxsoft.com
#include <stdio.h>
int main(void)
{
char s1[38]="www.yjxsoft";
char s2[]=".com";
int i,j;
i=j=0;
// while(s1[++i]);
//
// while (s2[j])
// {
// s1[i++]=s2[j++];
// }
for(i; s1[i] != 0; i++){
}
for(j; s2[j] != 0; j++){
s1[i++] = s2[j];
}
printf("%s \n",s1);
getchar();
getchar();
return 0;
}
C风格字符串处理函数:
需掌握函数 | |
strlen(char *a) | 计算字符串长度 |
char*a strcat(char *a, char *b) | 连接两个字符串 |
char*a strncat(char *a, char *b , int n) | 把串b前边的n个字符直接连接到a后边 |
extern int strcmp(const char *s1,const char *s2) | 比较字符串s1和s2 当s1<s2时,返回值< 0 当s1==s2时,返回值= 0 当s1>s2时,返回值> 0 |
extern int strncmp(const char *s1,const char *s2, int maxten) | 比较字符串str1和str2的前maxlen个字符
|
extern int stricmp(const char *s1,const char *s2) | 比较字符串s1和s2,但不区分字母的大小写 |
extern int strincmp(const char *s1,const char *s2, int maxten) | 比较字符串str1和str2的前maxlen个字符 , 但不区分字母的大小写 |
char* strchr(char *str, char c) | 在一个字符串中查找给定字符的第一个匹配之处 printf("%s\n",strchr("abcdef123",'c')); 结果显示为:cdef123 |
char* strstr(char *str1, char *str2) | 在一个字符串中查找给定字符串的第一个匹配之处 printf("%s\n",strstr("abcdef123","12")); 结果显示为:123 |
extern char *strcpy(char* dest, const char *src); | 把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 |
需理解的函数 | |
int strspn(char *str1, char *str2) | 返回一个str2字符集中第一次不在str1中出现的字符下标位置 |
int strcspn(char *str1, char *str2) | 返回一个str2字符集中第一次在str1中出现的字符下标位置 |
char* strrchr(char *str, char c) | 在一个字符串中查找给定字符的最后一个匹配之处 printf("%s\n",strrchr("1cdccc1def123d",'1')); 结果为123d |
char* strpbrk(char *str1, char *str2) | 在串中查找str2字符集中的字符 ,返回第一个位置处的字串 |
char*srt1 strtok(char *str1, const char *str2) | 查找由在第二个串中指定的分界符分隔开的单词,,返回第一个位置处的字串 |
C风格字符串转换和判断函数:
需添加#include<ctype.h>
函数名 | 功能 |
islower | 测试是否小写字母, 是返回非零,否则返回零. |
isupper | 测试是否大写字母, 是返回非零,否则返回零. |
isalpha | 测试是否字母, 是返回非零,否则返回零. |
isalnum | 测试是否数字, 是返回非零,否则返回零. |
iscntrl | 测试是否控制字符, 是返回非零,否则返回零. |
isprint | 测试是否可打印字符, 是返回非零,否则返回零. |
isgraph | 测试是否 可打印字符,不含空格,是返回非零,否则返回零. |
isdigit | 测试是否十进制字符 '0'~'9',是返回非零,否则返回零. |
isxdigit | 测试是否十六进制字符 '0'~'9',’a’~’f’,’A’~’F’是返回非零,否则返回零. |
isblank | 测试是否标准空白字符, 是返回非零,否则返回零. |
isspace | 测试是否空白字符, 是返回非零,否则返回零. |
ispunct | 测试是否 标点符号, 是返回非零,否则返回零. |
转换大小写 需添加#include<ctype.h>
toupper | 将小写 转换成大写 如果不是字符 返回原值 |
tolower | 将大写 转换成小写 如果不是字符 返回原值 |
字符串转换成数值 需要添加#include<stdlib.h>
需掌握函数 | |
atof | 从字符串转换成double类型 |
atoi | 从字符串转换成 int 类型 |
atol | 从字符串转换成 long 类型 (long和int类型的取值范围一样) |
atoll | 从字符串转换成 long long类型 |