1、字符串查找

strstr       

char * strstr(const char *s1, const char *s2);  
在s1中查找s2,如果找到返回首个s2的首地址 char * strcasestr(const char *s1, const char *s2);
在s1中查找s2,不区分大小写,如果找到返回首个s2的首地址
char * strnstr(const char *s1, const char *s2, size_t n); 
在s1中的前n个字符中去查找s2,如果找到返回首个s2的首地址

2、字符串比较

int strcmp(const char *s1, const char *s2);
比较s1,s2 返回-1:s1<s2 0:s1=s2 1:s1>s2 int strncmp(const char *s1, const char *s2, size_t n);
比较s1,s2前n个字符 返回-1:s1<s2 0:s1=s2 1:s1>s2
  #include<stdio.h>

 int myStrCmp(const char *s1,const char *s2)
{
int i = ;
while(s1[i] != '\0' && s2[i] != '\0')
{
if(s1[i] != s2[i])
return s1[i] - s2[i];
i++;
}
return s1[i] - s2[i];
} int main(void)
{
char arr[],brr[],ch;
scanf("%[^\n]", arr);
getchar();
scanf("%[^\n]", brr);
printf("%d\n", myStrCmp(arr,brr));
return ;
}

3、字符串拼接

char * strcat(char *restrict s1, const char *restrict s2);
将s2拼接到s1上。
char * strncat(char *restrict s1, const char *restrict s2, size_t n);
将s2的前n个字符拼接到s1上
 char * myStrcat(char *s1,const char *s2)
{
int i = ,j = ;
while(s1[i] != '\0')
{
i++;
}
while()
{
s1[i+j] = s2[j];
if(s2[j] == '\0')
break;
j++;
}
return s1;
}

4、分割字符串

char * strtok(char * str, const char * sep);
将可变字符串str,以sep字符串里面的每一个字符作为分隔符进行分割
、改变原来字符串,把分隔符置换成'\0'
char * 分割成功返回分割首地址,分割失败返回NULL
<可用于查找字符串中最长的单词是哪个>
#include<stdio.h>
#include<string.h>
int main(void)
{
char str[] = "Hi, welcone to here";
char *sep = ", "; //字符串
char *p = strtok(str,sep);
while(p)
{
printf("p=%s\n", p);
p = strtok(NULL, sep);//NULL继续往后进行分割
}
return ;
} 运行结果:
Hi
welcome
to
here

查找出字符串中最长的单词

 #include<stdio.h>
#include<string.h>
int main(void)
{
char str[];
scanf("%[^\n]", str);//遇到回车符结束
char *sep = ", ";
char *p = strtok(str,sep),*maxp = NULL;
int count=,maxCount=;
while(p)
{
count = strlen(p);
if(count > maxCount)
{
maxp = p;
maxCount = count;
}
p = strtok(NULL, sep);//NULL继续往后进行分割
}
puts(maxp);
return ;
}

5、strcpy

char * stpcpy(char *dst, const char *src);
把src拷贝到dst中
char * stpncpy(char *restrict dst, const char *restrict src, size_t n);
把src前n个字符拷贝到dst中去
 char * myStrcpy(char *s1, const char *s2)
{
int i = ;
while()
{
s1[i] = s2[i];
if(s2[i] == '\0')
break;
i++;
}
return s1;
}

6、其它函数

isalpha() 判断是否为字母 'a'~'z' 'A'~'Z'
isalnum() 判断是否为数字或字母 '0'~'9' 'a'~'z' 'A'~'Z'
isdigit() 判断是否为数字 '0'~'9'
      0的ASCII是60,判断一个字符是否为数字 c >= '0' && c <= '9' return c - 60
isspace() 判断是否空格' '
isupper() 判断是否为大写 'A'
islower() 判断是否为小写 'a'

c 跟字符串有关的函数的更多相关文章

  1. 介绍一个很爽的 php 字符串特定检索函数---strpos()

    大家在用 php 开发的时候 是否 有遇到过,对于一个获取的字符串,如果想要特定检测它是否 含有某个特定的字符或者子字符串,总是找不到好方法,或者根本做不到,迫于无奈而使用foreach. 函数: s ...

  2. PHP常用字符串的操作函数

    字符串转换类函数 addcslashes函数:以C语言风格使用反斜线转义字符串中的字符 addslashes函数:使用反斜线引用字符串 chop函数:清除字符串中的连续空格 get_html_tran ...

  3. Python列表、元组、字典和字符串的常用函数

    Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...

  4. JavaScript实现字符串的contains函数

    JavaScript实现字符串的contains函数 / *  * string:原始字符串  * substr:子字符串  * isIgnoreCase:忽略大小写  * / function co ...

  5. 【C语言】10-字符和字符串常用处理函数

    一.字符处理函数 下面介绍的两个字符处理函数都是在stdio.h头文件中声明的. 1.字符输出函数putchar putchar(65); // A putchar('A'); // A int a ...

  6. php字符串常用处理函数(数组的拆分、查找替换)

    //字符串常用函数    $a = "hello";    echo strlen($a); //输出字符串的长度        $b = "Hello";   ...

  7. C# 字符串加密解密函数

    原文:C# 字符串加密解密函数 using System; using System.Text;using System.Security.Cryptography; using System.IO; ...

  8. php的数组与字符串的转换函数整理

    1.将一个字符串转化为数组 str_split()用于将一个字符串转化为数组 语法: str_split(string,length) //string是必须的,是要分割的字符串: //length是 ...

  9. SQL Server 中截取字符串常用的函数

    SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要 ...

  10. js将字符串转化成函数:eval(logOutCallbackFun+"()");

    js将字符串转化成函数:eval(logOutCallbackFun+"()");

随机推荐

  1. C语言复杂的函数指针声明

    复习C语言ING,发现复杂的函数指针声明看不懂,百度半天终于略知一二. 讲的比较详细的一篇blog: http://blog.csdn.net/megaboy/article/details/4827 ...

  2. Kotlin Vertx

    Kotlin & Vertx Kotlin 是一门好语言,值得大家了解一下. Vertx 是一个好框架,也值得大家了解一下. Kotlin 写过js,也写过一点点go,主力一直是java.用了 ...

  3. 利用新版ShareSDK进行手动分享(自定义分享界面)

    之前有用过Share SDK进行快捷分享,可是官方demo中的快捷分享的界面已经设置死了,而公司的产品又设计了自己的分享界面,这就需要我进行手动分享了.当前ShareSDK版本是2.5.4. 看了一堆 ...

  4. javascript原生ajax;

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Android中的数据存储

    Android中的数据存储主要分为三种基本方法: 1.利用shared preferences存储一些轻量级的键值对数据. 2.传统文件系统. 3.利用SQLite的数据库管理系统. 对SharedP ...

  6. Struts2.x教程(一) Struts2介绍

    一.Struts2是什么 Struts2是在WebWork2基础发展而来的.和Struts1一样, Struts2也是基于MVC的web层框架. 那么既然有了Struts1,为何还要Struts2? ...

  7. Unity 3d 实施刚体力

    1.选中已经添加了刚体的物体,然后添加恒定力组件. 此组件可以给刚体中添加恒定的力或扭矩力,常用于一次性发射的刚体,如模拟火箭的发射.这种物体的初始速度不是很大,但是随着时间的推移,加速度会越来越大. ...

  8. 响应式(css_media)

    开始研究响应式web设计,CSS3 Media Queries是入门. Media Queries,其作用就是允许添加表达式用以确定媒体的环境情况,以此来应用不同的样式表.换句话说,其允许我们在不改变 ...

  9. Javascript 自定义事件 (custom event)

    Javascript 中经常会用到自定义事件.如何创建一个简单的自定义事件呢?在创建自定义的事件之前,我们应该考虑一下和事件有关的东西.例如 click 事件,首先我们要能注册一个click事件(在一 ...

  10. C++ HttpServlet 高并发多线程 HTTP 服务器(转)

    from:http://www.oschina.net/code/snippet_568966_43193   C/C++ 程序虽然执行效率高,但程序员在开发 WEB 应用时却因为没有好的 WEB 开 ...