C与指针 六 一些字符函数

来源:互联网 发布:java磁条读卡器 编辑:程序博客网 时间:2024/05/21 06:52
#include<stdio.h>
#include<string.h>
int str_len(char *ch);//字符串长度
char *str_cpy(char *dst,char const *str);//复制字符串
void str_cat(char *dst,char const *src);//连接字符串
int str_cmp(char const *s1,char const *s2);//连接字符串

char *str_chr(char const *str,int ch);//查找一个字符
char *str_rchr(char const *str,int ch);

char *str_str(char const *s1,char const *s2);//查找一个子串
void str_tok();
void print_tokens(char *line);
int main(void)
{
char ch[][20]={
"abcdefgh",
"ABCDEFGHIJK"
};
int len;
char cha[10],*chr=cha;
char ch1[]="opqr";
printf("%s\n",ch);
printf("%s\n",ch+1);
len=str_len(ch+1);
printf("%d\n\n",len);

chr=str_cpy(ch,ch+1);
printf("%s\n%s\n%s\n\n",chr,ch,ch+1);

strcpy(ch,"abcdefgh");
str_cat(ch,ch1);
printf("%s\n\n",ch);

strcpy(ch,"abcdefgh");

len=str_cmp("es","fn");
printf("%d\n\n",len);

strcpy(ch,"abcddefafgah");
chr=str_chr(ch,'d');
printf("%s\n\n",chr);
chr=str_rchr(ch,'a');
printf("%s\n\n",chr);


    chr=strstr(ch,"de");
printf("%s\n\n",chr);

len=strspn(ch,"ajbdc");
printf("%d\n\n",len);
len=strcspn(ch,"dc");
printf("%d\n\n",len);

strcpy(ch,"abcefghijkd");
printf("%s\n",ch);
chr=strtok(ch,"acdhj");
printf("%s\n",ch);
printf("%s\n\n",chr);

str_tok();

print_tokens(ch);
return 0;
}
//字符串长度
int str_len(char *ch)
{
    printf("%s\n",ch);
return strlen(ch);
}
//复制字符串
char *str_cpy(char *dst,char const *str)
{

return strcpy(dst,str);

}
//连接字符串
void str_cat(char *dst,char const *src)
{
strcat(dst,src);
}
//连接字符串
int str_cmp(char const *s1,char const *s2)
{
return strcmp(s1,s2);
}
//查找一个字符
char *str_chr(char const *str,int ch)
{
return strchr(str,ch);
}
//查找一个字符
char *str_rchr(char const *str,int ch)
{
return strrchr(str,ch);
}
//查找一个子串
char *str_str(char const *s1,char const *s2)
{
return strstr(s1,s2);
}


void str_tok()
{
char s[] = "aaa bbb ccc ddd";  
        char c[] = " ";  
  
        char *r = strtok(s, c);  
        printf("%s\n", r);  
        while (r != NULL) {  
                printf("%s\n", r);  
                r = strtok(NULL, c);  
        }  
}
void print_tokens(char *line)
{
static char whitespace[]=" \t\f\r\v\n";
char *token;
for(token=strtok(line,whitespace);
token!=NULL;token=strtok(NULL,whitespace))
printf("Netct token is %s\n",token);
}
0 0
原创粉丝点击