首页 > 代码库 > c语言
c语言
例子:涉及字符串、字符、指针、++等
例一:字符串与字符
#include <stdio.h>void reverse(char *str){ char *end=str; printf("%c\n",*str); //结果是a //printf("%s",*str); //以字符串输出,有错误 printf("%s\n",str); //这样输出字符串是对的 printf("%c\n",*end); printf("%s\n",end); printf("%c\n",*str+1); //结果是b
}int main(){ reverse("abcdef"); return 0;}
例二:统计字符串单词的个数【如何去掉空格的问题】
#include "stdio.h" int count_word(char *str); void main(){ char str1[80]; int sum=0; puts("please enter a string"); gets(str1); sum=count_word(str1); //返回的count就是sum printf("there are %d words in this sentence",sum); } int count_word(char *str) { int count,flag; char *p; count=0; flag=0; p=str; while(*p!=‘\0‘)/*当字符串没有到结尾的时候,重头到尾的循环*/ { if(*p==‘ ‘)/*假如字符串遇到空格,就将flag清零,同时可以过滤掉多余的空格*/ flag=0; else if(flag==0)/*当字符串不是空格时,假如flag为0,那么计算器加1,既是遇到空格后的第一个字符时*/ { flag=1;/*将flag标记回1,这样在遇到第一个字符后的字符时可以将他过滤掉,直到遇到空格时,在清零*/ count++; //count就是统计单词数的变量。其实就是单词数的第一个字符,后面的字符都没有统计了 } p++; //继续加一。没有遇到空格的时候 。直到继续遇到空格或结尾的时候,才不加一了。 } return count; }
例三:字符串反转
#include <stdio.h>void reverse(char *str){ char *z=str; char *end=str; char tmp; if(str) { while(*end) { ++end; } --end; //回退一个,找到null while(str < end) { tmp = *str; *str++ = *end; *end--=tmp; } } printf("%s",z); }int main(){ char s[]="1234546"; reverse(s);//上面两句,如果直接这么写 reverse("123456789"); 就会有一个报警错误 return 0;}
例四:字符串长度
#include <stdio.h>void reverse(char *p){ if( *p==‘\0‘) return ; reverse(p+1); printf("%c",*p); }int main(){ reverse("abcdefghjklmn");//为4 printf("%d",sizeof("abc"));//为3 printf("%d",strlen("abc")); printf("\n"); return 0; }
例五:字符串反转【用递归和指针的方式】
#include <stdio.h>void reverse(char *p){ if( *p==‘\0‘) return ; reverse(p+1); printf("%c",*p); }int main(){ reverse("abcdefghjklmn"); printf("\n"); return 0; }
c语言
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。