c语言串函数
A. c语言中对字符串截取的函数!
你是想把所有b输出呢还是只输出一个?还是截取?下次问清楚点吧
for(i=0;i<100;i++)
{
if(a[j]=='b')
{
printf("%c",a[i]);
}
这是所有的
for(i=0;i<100;i++)
{
if(a[j]=='b')
{
printf("%c",a[i]);
break;
}
只输出一个b的
如果是遇到b然后截取成7段(6个b)
用函数
sscanf("a,%[^_]b%s",a,b,c,d,e,f,g); //第一个b可以改成你想要分割的关键字
头文件是#include<stdio.h>
截取后的字符串分别存在abcdefg字符串中,abcdefg要先定义
B. C语言关于字符串的操作函数有哪些
string.h头文件中包含的字符串函数
void*memcpy(void*dest,constvoid*src,size_tn);//将n字节长的内容从一个内存地址复制到另一个地址;如果两个地址存在重叠,则最终行为未定义
void*memmove(void*dest,constvoid*src,size_tn);//将n字节长的内容从一个内存地址复制到另一个地址;与memcpy不同的是它可以正确作用于两个存在重叠的地址
void*memchr(constvoid*s,charc,size_tn);//在从s开始的n个字节内查找c第一次出现的地址并返回,若未找到则返回NULL
intmemcmp(constvoid*s1,constvoid*s2,size_tn);//对从两个内存地址开始的n个字符进行比较
void*memset(void*,int,size_t);//用某种字节内容覆写一段内存空间
char*strcat(char*dest,constchar*src);//在字符串dest之后连接上src
char*strncat(char*dest,constchar*src,size_tn);//从src截取n个字符连接在字符串dest之后,返回dest字符串
char*strchr(constchar*str,intch);//从字符串str头开始查找字符ch首次出现的位置
char*strrchr(constchar*str,intch);//从字符串str尾开始查找字符ch首次出现的位置
intstrcmp(constchar*,constchar*);//基于字典顺序比较两个字符串
intstrncmp(constchar*,constchar*,size_t);//基于字典顺序比较两个字符串,最多比较n个字节
intstrcoll(constchar*,constchar*);//基于当前区域设置的字符顺序比较两个字符串
char*strcpy(char*str1,constchar*str2);//将str2拷贝给str1
char*strncpy(char*str1,constchar*str2,size_tn);//截取str2的n个字符拷贝给str1
char*strerror(int);//返回错误码对应的解释字符串,参见errno.h(非线程安全函数)
size_tstrlen(constchar*);//返回一个字符串的长度
size_tstrspn(constchar*s,constchar*strCharSet);//从字符串s的起始处开始,寻找第一个不出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由strCharSet中的字符构成的子串的最大长度。strspn为stringspan的缩写。不支持多字节字符集。
size_tstrcspn(constchar*s,constchar*strCharSet);//从字符串s的起始处开始,寻找第一个出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由不属于strCharSet中的字符构成的子串的最大长度。strcspn为stringcomplementspan的缩写。不支持多字节字符集。
char*strpbrk(constchar*s,constchar*strCharSet);//在字符串s中查找strCharSet中任意字符第一次出现的位置的指针值。strpbrk为stringpointerbreak缩写。不支持多字节字符集。
char*strstr(constchar*haystack,constchar*needle);//在字符串haystack中查找字符串needle第一次出现的位置,heystack的长度必须长于needle
char*strtok(char*strToken,constchar*strDelimit);//将一个字符串strToken依据分界符(delimiter)分隔成一系列字符串。此函数非线程安全,且不可重入;但MSVC实现时使用了thread-localstaticvariable因而是线程安全的单仍然是不可重入,即在单线程中不能对两个源字符串交替调用该函数来分析token,应当对一个字符串分析完成后再处理别的字符串。
size_tstrxfrm(char*dest,constchar*src,size_tn);//根据当前locale转换一个字符串为strcmp使用的内部格式
C. C语言字符串操作函数
char
s1[256]="abcdefg";
char
s2[256]="123456";
strupr(s1)
//变大写袭s1就是
ABCDEFG
strlwr(s1)
//变小写s1就是
abcdefg
strlen(s1)
//求长度
返回6
strcpy(s1,s2)
//拷贝后s1="123456"
strcat(s1,s2) //连接s1="abcdefg123456"
strcmp(s1,s2) // 比大小
s1大就返回1
s1小就返回-1
一样大就返回0
D. C语言:几个简单的字符串函数
//每个函数运行,input char从键盘输入一个要处理的字符串,此程序在vc6.0上编译运行都通过
#include <stdio.h>
fun1(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
for(i=0;i<n;i++)
if(a[i]!=a[i+1])
printf("%c",a[i]);
}
fun2(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
for(i=0;i<3;i++)
if('a'<=a[i]<='z')
printf("%c",a[i]-32);
else
printf("%c",a[i]);
printf("\n");
}
fun3(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
printf("%d\n",n);
}
fun4(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
for(i=n-1;i>=0;i--)
printf("%c",a[i]);
}
main()
{
char a[100],b[100],c[100];
fun1(a);
fun2(a);
fun3(b);
fun4(c);
}
E. c语言字符串函数有哪些
复制相关函数:memcpy、抄memmove、strcpy、strncpy
字符串连接函数:strcat、strncat
字符串比较函数:memcmp、strcmp、strcoll、strncmp、strxfrm、
查找函数:memchr、strchr、strcspn、strpbrk、strrchr、strspn、strstr、strtok
其他相关函数:memset、strerror、strlen
F. C语言字符串函数实现
越界访问了吧。
G. c语言字符串函数
c语言里, 只要不是0就表示 true
*s1 的意思就是 只要指针s1处保存的字符不是 '\0' (即是true) 就继内续处理,
如果是 '\0' (即是false), 就终止处理.
这是因容为C语言的字符串, '\0'是字符串结束的标志.
H. C语言 字符串函数
首先要明白,sizeof不是函数,而是操作符;strlen是函数。
操作符sizeof用来判断对象、类型所占用的内存空间的字节数,strlen是计算一个字符串以字节计的长度。如:sizeof(int)、sizeof(double)、sizeof(char)等是合法的,可以计算出int、double、char这些类型所占用的字节数分别是4、8、1,而用strlen则是非法的。再如:若有char
a[20]="123";,那么,strlen(a)的结果是3,而sizeof(a)的结果是20;前者是字符串“123”的长度,后者是为数组a分配的内存空间。还有:当计算一个指向字符串的指针时,sizeof得到的是指针本身的长度即固定为4(32位机),而strlen得到的是指针指向的字符串的长度。如:char
a[20]="1234567",*p=a;,则,sizeof(p)=4,而strlen(p)=7。似乎复杂了点。记住一个原则就好判断:操作符sizeof用来计算系统为对象本身分配的空间(以字节计),函数strlen用来计算字符串的长度(以字节计)。