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. jshint在bat批处理中闪退,代码中无法调用的问题

    先说解决办法:加个call eg: call jshint --version Pause 具体原因有空再更

  2. Spring学习之AOP详解

    aop使用方式 @Aspect注解 wildcards通配符: * 匹配任意数量的字符 + 匹配指定类及其子类 .. 一般用于匹配任意数的子包或参数 operators运算符 && 与 ...

  3. Jenkins配置HTML报告(Windows环境)

    1.首先安装插件HTML Publisher,点击直接安装 2.在任务中配置,构建后操作,添加Publish HTML reports 3.添加完成后,新增一项 4.HTML directory to ...

  4. JavaScript词法分析(尽力理解)

    JavaScript中在调用函数的那一瞬间之前,会先进行词法分析 词法分析的过程: 当函数调用的前一瞬间,会先形成一个激活对象:Avtive Object(AO),并会分析以下3个方面: 1:函数参数 ...

  5. Bogart BogartAutoCode.vb

    Imports System.Data.SqlClient Imports System.Data Public Class BogartAutoCodeDataBase Private Conn A ...

  6. 字符串,数组,定时器,form

    一.字符串 <script> /* // 字符串的属性 var a="hello world"; console.log(a.length); console.log( ...

  7. python super()函数详解

    引言: 在类的多继承使用场景中,重写父类的方法时,可能会考虑到需要重新调用父类的方法,所以super()函数就是比较使用也很必要的解决方法: 文章来源: http://www.cnblogs.com/ ...

  8. uva-657-搜索

    注意是四个方向(上下左右),不是八个方向,当成了八个方向做,一直wa AC时间:0ms #include<stdio.h> #include<iostream> #includ ...

  9. bootstrap file input 多图片上传编辑THINKPHP5

    {layout name="layout" title="文章添加" /} <form id="defaultForm" role=& ...

  10. kvm安装及使用

    ****centos7安装及使用kvm: http://blog.csdn.net/github_27924183/article/details/76914322?locationNum=5& ...