码迷,mamicode.com
首页 > 编程语言 > 详细

c语言

时间:2014-10-30 19:03:25      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   sp   div   问题   log   

例子:涉及字符串、字符、指针、++等

例一:字符串与字符

#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语言

标签:style   blog   io   color   ar   sp   div   问题   log   

原文地址:http://www.cnblogs.com/bluewelkin/p/4063265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!