关闭

strchr用法

标签: c语言
223人阅读 评论(0) 收藏 举报
分类:
#include<stdio.h>
#include<string.h>
int main()
{
int count=0;
char s[20],but[99];
scanf("%s",&s);
for(int abc=111;abc<=999;abc++)
for(int de=11;de<=99;de++)
{
int x=abc*(de%10),y=abc*(de/10),z=abc*de;
sprintf(but,"%d%d%d%d%d",abc,de,x,y,z);
int ok=1;
for(int i=0;i<strlen(but);i++)
if(strchr(s,but[i])==NULL) ok=0;
if(ok)
{
printf("<%d>\n",++count);
printf("%5d\nX%4d\n-----\n%5d\n%4d\n-----\n%5d\n\n",abc,de,x,y,z);
}
}
printf("The number of solutions = %d\n",count);
return 0;
}
/*strrchr()函数:
strrchr()函数的作用是:
    查找一个字符串在另一个字符串中 末次 出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符;
    如果未能找到指定字符,那么函数将返回False。


char *strrchr(
   char *str,
   int c 
);
strrchr() 函数的分析 
函数原型:extern char * strrchr (const char *s, int c)


参数说明:s为一个字符串的指针,c为一个待查找字符。
        
所在库名:#include <string.h>
  
函数功能:查找在s字符串中最后一次出现字符c的位置。
  
返回说明:如果str中存在字符ch,返回出现ch的位置的指针;否则返回NULL。


说明:
str 
必要参数。指定需要进行搜索的字符串(字符串指针)

必要参数。指定需要查找的字符对象。如果是一个数字,那么他将搜索与这个数字对应的ASCII值相匹配的字符 




strrchr()函数源码:
/* 查找在s字符串中最后一次出现字符c的位置 */
char * strrchr (const char *s, int c)
{
    register const char *found, *p;


    c = (unsigned char) c;


    //如果查找的字符是结束符,直接用strchr 函数返回结束符号的位置。


    if (c == '/0')
        return strchr (s, '/0');




    //返回值(查找的字符地址)赋初值,很重要。
    found = NULL;


    //从当前字符串超找字符c,并将返回指针赋给p,如果p不等于NULL,则执行循环。


    //如果p等于NULL,说明已查找整个字符串,退出循环。
    while ( (p = strchr (s, c)) != NULL )
    {


        //暂存查找到的字符地址。
        found = p;


        //截取已经查找过的字符串(将返回地址p的下一个字符地址作为字符串开头)。
        s = p + 1;
    }


    //如果没有找到字符,则不会执行循环,found返回初值NULL。


    //如果找到字符,返回p赋给found的指针地址。


    return (char *) found;
}


//函数举例:
//void main()
//{
//    char * pCh = "www.inkcool.com";
//    char * pFind = strrchr(pCh, '.');
//    if ( pFind != NULL)
//    {
//        printf("%s/n", pFind);    //可以直接printf(pFind);printf("/n");左边的表达式是合二为一的表达方法;
//    }
//}


//返回结果是:.com      //注意,有'.'而不是只返回com*/
0
0
查看评论

strchr的用法

字不多打了 看一个程序就知道的。 #include #include int buld(char* str, char c) { int p = strchr(str,c) - str; //??? return p; } int main() { char str1[20],c; ...
  • u013218768
  • u013218768
  • 2014-01-07 20:47
  • 600

strchr函数的用法

【FROM MSDN && 百科】 原型: char *strchr(const char *s,char c); #include 查找字符串s中首次出现字符c的位置,返回首次出现c的位置的指针,如果s中不存在c则返回NULL。 //#...
  • dreamzuora
  • dreamzuora
  • 2016-11-23 14:56
  • 1990

string库之模拟实现strchr、strrchr与memchr

原型:     C库string.h中的strchr函数 描述:     C 库函数 char *strchr(const char *str, int c) 在参数 str 所指向的字符串中搜索第一次出现字符...
  • qq_35524916
  • qq_35524916
  • 2017-03-16 05:51
  • 364

strchr函数的实现而不是使用

strchr()函数的自我实现之寻找茫茫字符中的她
  • u011401496
  • u011401496
  • 2014-08-09 12:07
  • 1274

char * strchr (const char *str, int c);

头文件:#include strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:     char * strchr (const char *str, int c); 【参数】str 为要查找的字符串,c 为要查找的字符。 strchr() ...
  • wsclinux
  • wsclinux
  • 2016-11-22 11:45
  • 650

整理:memchr与strchr的区别

1. memchr检测的是一段内存,strchr检测的是一个字符串 如果一段内存中有0x0的话,显然不能用strchr去查找的。建议看看两个函数的原型 2. strchr会停在\0,memchr不会,看接口就明白了: NAME    &#...
  • bat67
  • bat67
  • 2016-07-29 11:34
  • 744

关于strchr()

最近写根据前序和中序构造二叉树用到了这个函数,但是用这个函数不好,因为strchr返回的是某字符在字符串中首次出现的位置,若有重复字符就白瞎了。所以前提是二叉树中没有重复出现的元素。头文件:#include (c++)或#include (c)功能:查找字符串s中首次出现字符c的位置 说明:返回...
  • MichealTX
  • MichealTX
  • 2010-06-26 09:12
  • 2428

strstr和strchr的区别

看函数的原型定义: 1.strstr:
  • wusuopuBUPT
  • wusuopuBUPT
  • 2014-08-21 23:37
  • 10539

自己实现strchr函数

自己实现strchr函数编写
  • fantasydreams
  • fantasydreams
  • 2014-11-26 03:35
  • 1210

C语言之strchr函数

【FROM MSDN && 百科】 原型: char *strchr(const char *s,char c); #include 查找字符串s中首次出现字符c的位置,返回首次出现c的位置的指针,如果s中不存在c则返回NULL。 ...
  • hgj125073
  • hgj125073
  • 2012-12-27 15:28
  • 12314
    个人资料
    • 访问:1344次
    • 积分:71
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档