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. 20165233 2017-2018-2 《Java程序设计》第八周学习总结

    20165233 2017-2018-2 <Java程序设计>第八周学习总结 教材学习内容总结 基础:Java中的线程,Thread类与线程的创建 - 线程是比进程更小的单位. - JVM ...

  2. centos中YUM安装后文件的常见路径

    1 php的相关 1)ini的文件   /etc/php.ini 2 apache相关 1) conf的文件 /etc/httpd/conf 2)错误日志  /etc/httpd/logs 3)扩展文 ...

  3. mysql开启查询日志功能

    1.开启查询日志  https://www.cnblogs.com/kerrycode/p/7130403.html MYsql 查询日志配置    mysql> show variables ...

  4. RedHat7.0更新yum源

    https://blog.csdn.net/hongbin_xu/article/details/79316614

  5. 18. 进livebos对象直接跳转jsp页面的做法

    在网格脚本定义添加: window.onload=function(){     window.location.href='/plug-in/sinopec/contractManagement/h ...

  6. JAVA 读取配置文件 xxx.properties

    package config_demo; import java.io.InputStream; import java.util.Properties; public class UrlDemo { ...

  7. sts安装出现could not find jar:file解决办法

    转自:https://blog.csdn.net/weixin_43702329/article/details/84823912 标题sts插件下载好但是安装出错 我的eclipse是4.5.2,在 ...

  8. django 使用多个数据库

    在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接. 参考:http://blog.csdn.net/songfree ...

  9. 进程和创建线程的两种方法(threading.Thread)

    进程 如QQ 要以一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用,内存的管理, 网络接口的调用等,进程就是各种资源管理的集合 线程:是操作系统最小的调度单位,是一串指令的结合 进程 要操作 ...

  10. Annoying “Remote System Explorer Operation” causing freeze for couple of seconds

    Eclipse -> Preferences -> General -> Startup and Shutdown. -Uncheck RSE UI. Eclipse -> P ...