菜单

4166m金沙C语言字符及字符串处理函数,判断一个字符串中是否含有字符C

2019年8月24日 - 4166am金沙下载

c语言:判断一个字符串中是否含有字符C

判断一个字符串中是否含有字符C

程序:

#include <stdio.h>
int is_in(char *s, char c)
{
while (*s != '\0')
{
if (*s == c)
{
return 1;
}
else
{
s++;
}
}
return 0;
}

int main()
{
char *p = "abcdefgh";
char c = 'd';
int ret = is_in(p,c);
if (ret == 1)
{
printf("存在\n");
}
else
{
printf("不存在\n");
}
return 0;
}

 

结果:

存在

请按任意键继续. . .

 

判断一个字符串中是否含有字符C 程序: #include stdio.hint is_in(char
*s, char c){while (*s != \0){if (*s == c)…

 

char acStr[] = “aaaaa”;//这个是字符数组,只含有5个字符
char *pcStr =
“aaaaa”;//这个是字符串,含有6个字符,即5个a加一个结束符’\0′

#include <ctype.h>

 

int isalnum(int c) 测试C是否为字母或数字

输出的结果 strlen()长度都是5,
所以即便是字符串,最后取长度的时候,也不考虑\0:   strlen()计算字符串长度,忽略结束符
\0

int isalpha(int c) 测试C是否为字母

char *p = “hello”;
char *q = “world”;
char o[]4166m金沙, = “hello”;
cout<<“hello”<<strlen(p)<<endl;   //5
cout<<“world”<<strlen(q)<<endl;  //5
cout<<“o[]”<<strlen(o)<<endl;     //5

int iscsym(int c) 测试C是否为字母、下划线或数字

cout<<strlen(“hello”)<<endl;    //5

int iscsymf(int c) 测试C是否为字母、下划线

 

int isdigit(int c) 测试C是否为十进制数字

 

int isxdigit(int c) 测试C是否为十六进数字

  1. 字符串实际要比字符数组多一个空间 用来存放结束符 \0

int islower(int c) 测试C是否为小写字母

char *p = “hello”;
char *q = “world”;   //比如world实际上存放了6个字符位, 5个字符+’\0′

int isupper(int c) 测试C是否为大写字母

但是求长度, 返回的值仍然是5: 并不考虑 结束符\0的位

int ispunct(int c) 测试C是否为标点符号

cout<<“hello”<<strlen(p)<<endl;
cout<<“world”<<strlen(q)<<endl;

int isspace(int c) 测试C是否为空白

 

int isgraph (int c)     测试C是否为可打印字符

  1. 字符数组是不用存放\0位的,所以分配的字符位数 只要给
    strlen(p)就行了, 不需要+1:

int isascii(int c) 判断C是否为ASCII字符,(0-127)

a[0] = new char[strlen(p)];
a[1] = new char[strlen(q)];

int toasscii(int c) 将字符C转换成ASCII

 

int tolower(int c) 将字符C转换成小写字符

用字符数组和字符指针变量都可实现字符串的存储和运算。
但是两者是有区别的。在使用时应注意以下几个问题:

int toupper(int c) 将字符C转换成大写字符

1.
字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。

#include <stdlib.h>

  1. 对字符数组作初始化赋值,必须采用外部类型或静态类型,如: static char
    st[]={“C Language”};而对字符串指针变量则无此限制,如: char *ps=”C
    Language”;

  2. 对字符串指针方式 char *ps=”C Language”;可以写为: char *ps; ps=”C
    Language”;而对数组方式:

double atof(const char *nptr) 将字符串转换成双精度浮点型数

static char st[]={“C Language”};

int atoi(const char *nptr) 将字符串转换成整型数  

不能写为:

long atol(const char *nptr) 将字符串转换成长整型数

char st[20];st={“C Language”};

double strtod(const char *nptr, char **endptr)
将字符串转换成双精度浮点型数

而只能对字符数组的各元素逐个赋值。

loing int strtol(const char *nptr, char **endptr,int base)
将字符串转换成长整型数

  从以上几点可以看出字符串指针变量与字符数组在使用时的区别,同时也可看出使用指针变量更加方便。前面说过,当一个指针变量在未取得确定地址前使用是危险的,容易引起错误。但是对指针变量直接赋值是可以的。因为C系统对指针变量赋值时要给以确定的地址。因此,

unsigned long int strtoul(const char *nptr, char **endptr, int base)
将字符串转换成无符号长整型数

char *ps=”C Langage”;

char *gcvt(double number, sixe_t ndigits, char
*buf)将浮点整型数转换为字符串,取四舍五入

或者 char *ps;

#include <string.h>

ps=”C Language”;都是合法的。

char *strcpy(char *s1, const char *s2) 将字符串s2复制到数组s1中

 

char *ctrncpy(char *s1, const char *s2, size_t n)
将字符串s2开始的n个字节复制到字符数组s1中

 

char *strcat(char *s1, const char *s2)
将字符串s2追加到字符数组s1中的字符串后

C++提供两种字符串的表示方法:c风格的字符串和标准c++引入的string类类型。建议使用string类。

char *strncat(char *s1, const char *s2, size_t n)
将字符串s2开始的n个字节追加到字符数组s1中的字符串后

 

int strcmp(const char *s1, const char *s2) 比较字符串s1与字符串s2

1.  C风格字符串

int strncmp(const char *s1, const char *s2, size_t n)
比较字符串s1与字符串s2前n个字符

 

char *strchr(const char *s, int c)
查找C所表的字符在字符串s中首次出现的位置,成功返回该位置的指针,否则返回NULL

字符串存储在一个字符数组中,一般通过一个char
*类型指针操纵它。然而,系统内部实际上是存储在一个字符串数组中,然后,st指向数组的第一个元素:

char *strrchr(const char *s, int c) 返回C
所代表的字符在s中最后一次出现的位置指针,否则返回NULL

Char *st=”hello world”;

size_t strcspn(const char *s1, const char
*s2)计算并返回字符串s1中不包含字符串s2中任何字符的起始段的长充,即在字符串s1中查找是否有字符串s2的字符,若碰到有该字符则返回从开始到该字符之前的字符长度

常用指针的算术运算来遍历c风格的字符串,每次指针增加1,直到空字符为止:

size_t strspn(const char *s1, const char
*s2)计算并返回字符串s1中只包含字符串s2中字符的起始段的长段,即当在s1中没遇到s2在s2中的字符时,返回从开始到该字符之前的字符串的长度

While(*st++){…}

char *strpbrk(const char *s1,const char
*s2)查找字符串s2中任意字符在字符串s1中首次出现的位置

 

char *strstr(const char *s1, const char *s2)
返回字符串s2在字符串s1中首次出次的位置指针,否则返回NULL

当包含:#include<cstring.h>

char *strtok(char *s1, const char *s2)
对strtok()函数的反复调用将使字符串s1分解为若干记号,这些记号用字符串s2中所包含的字符分开,第一次调用包含s1作为第一个参数,而继续划分相同字符串的后续调用将包含NULL作为第一个参数,每次调用将返回指向当前记号的指针。如果当调用函数时没有更多的记号,则返回NULL

//返回长度

#字符串内存函数

Int strlen(const char *);

void *memcpy(void *s1, const void *s2, size_t n)
将s2指向的内存块内n个字符复制到s1指向的内存块,返回结果对象的指针;

//比较两字符串是否相等

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图