1、字符串反转 – strRev

void strRev(char *str)
{
assert(NULL != str);
 
    int length=strlen(str);
char *end=str+length-1; while(end > str)
{
*str=(*str)^(*end);
*end=(*str)^(*end);
*str=(*str)^(*end); end--;
str++;
}
}

2、字符串复制 – strcpy

char *strcpy(char *strDest, const char *strStr)
{
assert((NULL != strDest) && (NULL != strStr)); char *Dest=strDest; while((*Dest++)=(*strStr++))
{} return strDest;
}

3、字符串拼接 –strcat

char *strcat(char *strDest, const char *strStr)
{
assert((NULL != strDest) && (NULL != strStr)); int length=strlen(strDest); char *Dest=strDest+length; while((*Dest++)=(*strStr++))
{} return strDest;
}

4、字符串比较 –strcmp

int strcmp(const char *strDest, const char *strStr)
{
assert((NULL != strDest) && (NULL != strStr)); while(0==(*strDest - *strStr) && *strDest )
{
strDest++;
strStr++;
} if(*strDest > *strStr)
return 1;
else if(*strDest < *strStr)
return -1;
else
return 0;
}

5、字符串长度 –strlen

int strlen(const char *strStr)
{
assert(NULL != strStr); int length = 0; while('\0' != *strStr)
{
length++;
strStr++;
} return length;
}

6、字符串转数字 –atoi

int atoi(const char *strStr)
{
assert(NULL != strStr); int minus = 0;
int begin = 0;
int sum = 0; while('\0' !=*strStr)
{
if(0==begin && (isdigit(*strStr) || '+'==*strStr || '-'==*strStr))
{
begin = 1; if('-'==*strStr)
{
minus = 1;
strStr++;
continue;
}
}
else if(!isdigit(*strStr))
{
printf("format is wrong !\n");
exit(1);
} if(1==begin)
{
sum = sum*10 + (*strStr-'0');
} strStr++;
} return minus ? (-sum):(sum);
}

7、数字转字符串 –atoi

char *itoa(int num)
{
int temp,i,j;
char array[10];
static char strDest[10]; for(temp = num,i=0; i<10 && temp ;i++)
{
array[i]=temp%10+'0';
temp/=10;
} for(i=i-1,j=0 ; i>=0 && j<10; i--,j++)
{
strDest[j]=array[i];
}
strDest[j]='\0'; return strDest;
}

8、计算字符串中元音字符的个数

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<ctype.h> int isVowel(char letter)
{
switch(toupper(letter))
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
return 1;
default:
return 0;
}
} int countVowel(const char * strStr)
{
assert(NULL != strStr); int count=0; while('\0' !=*strStr++)
{
if(isVowel(*strStr))
count++;
} return count;
} int main()
{
char a[10]="hwlulr"; printf("%d\n",countVowel(a)); return 0;
}

9、判断一个字符串是否是回文

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>
#include<ctype.h> int isEqual(char a,char b)
{
if(a==b)
return 1; return 0;
} int isPalindrome(const char * strStr)
{
assert(NULL != strStr); int length=strlen(strStr);
int i,j; for(i=0,j=length-1; i<j ; i++,j--)
{
/*跳过空格和符号*/
while(' '== *(strStr+i) || !isalpha(*(strStr+i)))
i++;
while(' '== *(strStr+j) || !isalpha(*(strStr+j)))
j--; if(0==isEqual(*(strStr+i),*(strStr+j)))
return 0;
} return 1;
} int main()
{
char a[10]="heo o, e h"; printf("%s\n",isPalindrome(a) ? "is Palindrome" : "is not Palindrome"); return 0;
}

C语言字符串操作函数实现的更多相关文章

  1. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  2. C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...

  3. C语言字符串操作函数整理

    整理C语言字符串相关的函数,以程序方式验证,以注释方式做说明. #include<stdio.h> #include<string.h> #include<stdlib. ...

  4. C语言字符串操作函数

    1.函数名: stpcpy  功  能: 拷贝一个字符串到另一个  用  法: char *stpcpy(char *destin, char *source);  程序例: #include < ...

  5. C语言字符串操作函数总结

    转载来源:https://blog.csdn.net/qq_33757398/article/details/81212618 字符串相关操作头文件:string.h 1.strcpy函数 原型:st ...

  6. C语言-字符串操作函数

    gets(char buffer[]) 从标准输入读取一行, 并去掉换行符, 在字符串末尾增加 '\0' 字符, 写入到缓冲区 成功则返回 buffer 的地址, 出错或者遇到文件结尾则返回空指针, ...

  7. c语言字符串操作大全

     C语言字符串操作函数 函数名: strcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: #incl ...

  8. C语言的常用字符串操作函数(一)

    一直做的是单片机相关的程序设计,所以程序设计上更偏向底层,对于字符串的操作也仅限于液晶屏幕上的显示等工作,想提高下字符串操作的水平,而不是笨拙的数组替换等方式,翻看帖子发现C语言的字符串操作函数竟然这 ...

  9. C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat( ...

随机推荐

  1. php笔记篇(二)

    mysql中key .primary key .unique key 与index区别(http://www.manongjc.com/article/1487.html) php is_file() ...

  2. pomelo RPC调用时新增字段缺失

    接触pomelo开发一个月,正式开始参与项目开发有10天,遇到很多细节的坑,今天讲讲标题:后端服务器节点之间的rpc调用过程中,返回的数据中新增字段缺失问题. 先讲结果:原因是该rpc调用已经采用了p ...

  3. Eclipse变量名自动补全问题 自定义上屏按键为TAB

    Eclipse空格等号等都可以上屏,这样有时候输入变量名再按空格就会自动补全,非常讨厌.那么怎么办呢? 1.首先你的Eclipse需要装有 Eclipse plug-in development en ...

  4. (19/24) webpack实战技巧:推荐使用的第三方类库打包方法

    在日常的开发中,总避免不了引入第三方的框架,比如常用的JQuery,此节我们来学习一下如何优雅并正确的用webpack引入第三方库. 这里我们以第三方框架JQuery为例: 1.在入口文件中引入 1. ...

  5. 使用Apache POI处理excel公式不更新的解决办法

    使用poi更新excel时,如果单元格A设置了公式,当其依赖的其他单元格填充了值之后,导出的excel中A仍为公式而不是自动计算的值,如图: Paste_Image.png 分值小计没有更新成计算结果 ...

  6. canal 常用配置

    https://github.com/alibaba/canal/wiki/AdminGuide canal.instance.filter.regex 监控哪些表的正则配置 如下: mysql 数据 ...

  7. Window Mysql 5.7.18安装

    1:下载地址 https://dev.mysql.com/downloads/mysql/ 点击Community , 然后点击Community Server 位置, 下载 安装包 2: 配置环境变 ...

  8. Asp.net MVC重要

    1.asp.net mvc百度解释 2.asp.net mvc各版本特点 3.asp.net mvc知多少 4.asp.net mvc4入门到精通系列目录汇总(邹琼俊)[重要] 5.新年奉献MVC+E ...

  9. Haskell语言学习笔记(43)Parsec(2)

    组合子 1 Prelude Text.Parsec Text.Parsec.String> parseTest (count 3 (char 'a')) "aaa" &quo ...

  10. Python基础语法题库

    引言: 语法练习包括Python基础语法.数据类型.字符编码和简单文件操作等内容. 正文(参考答案附录在题目下方): 1.Python 里用来告知解释器跳过当前循环中的剩余语句,然后继续进行下一轮循环 ...