c语言中的字符串函数
㈠ c语言求一个关于字符串的函数
可利用strstr函数。
strstr函数功能是找出字符串中特定字符串第一次出现的位置。如果找到,返回字符串中出现特定字符串的地址;如果没找到,返回空指针。如果要返回值是bool型的话,可以自写一个函数根据strstr的返回值,判断自写函数的返回值。
如:
bool
strfind(*str1,*str2)
{
if(strstr(*str1,*str2)!=0)
return
true;
return
false;
}
如果要不区分大小写,可以用strlwr(转换为大写)或strupr(转换为小写)将两字符串同一转换为大写(或小写)再作查找。
㈡ C语言字符串操作函数
strupr:将字符串s转换为大写形式
strlwr:将字符串s转换为小写形式
以上两个没说的!
●strlen功能:返回字符串s的长度,不包括串结束字符'\0',也不是数组长度;
如下几种方式:
1)strlen("china") 结果为5
2)char s[20]="china";
strlen(s) 结果为5
3)char *s="china";
strlen(s) 结果为5
●strcpy(字符串1,字符串2): 把字符串2中的所有内容,复制到字符串1中,不管字符串1中原先存放的是什么,全部被覆盖(要注意的是s1的长度要足够容纳s2)
●strcat(字符串1,字符串2): 将两个字符串连接,形成一个新的字符串(要注意的是s1的长度要足够容纳s1和s2,只能字符串和字符串连接,不能直接和整型,float,double等连接,不过可以加上双引号" ",使之变成字符型)
如下:
#include<stdio.h>
#include<string.h>
void main()
{
char a[100];
char b[100];
strcpy(a,"我爱-");
strcpy(b,"-美女");
strcat(a,b);
puts(a); /*输出:我爱--美女*/
}
●strcmp比较字符串的大小,但不是比较s1和s2的长度,而是比较对应字符串中的ASCII码的大小
如下:
char s1[10]="china";
char s2[10]="chz";
strcmp(s1,s2); //返回一个负数,即s1<s2。虽然s1的长度大于s2,但比较的是ASCII码
㈢ 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);
}
㈣ C语言中的字符处理函数
这三个哪个都不是字符处理函数,也不是语句。若在最后都加一个分号,那就是三条语句,也不是函数。这样的请三都是同一个意思,不过要知道*是char的组成部分,即char *型指针pWord。
㈤ c语言中对字符串截取的函数!
根据单个分隔字符用split截取
string st="GT123_1";
string[] sArray=st.split("_");
即可得到sArray[0]="GT123",sArray[1]="1";
2.利用多个字符来分隔字符串
tring str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split(new char[2] { 'j', '_' });
foreach(string e in sArray)
{
Console.WriteLine(e);
}
得到sArray[0]="GTAZB",sArray[1]="Jiang",sArray[2]="Ben",sArray[3]="123";
3根据字符串或字符串组来截取字符串
string str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries);
foreach(string e in sArray)
{
Console.WriteLine(e);
}
得到sArray[0]="GTAZB_",sArray[1]="ang",sArray[2]="en_123";
4提取字符串中的第i个字符开始的长度为j的字符串;
string str = "GTAZB_JiangjBen_123";
int start=3,length=8;
Console.WriteLine(str.Substring(start-1, length));
㈥ 在线等 C语言中,求字符串子串的函数
在纯C中好像没有,但是C++中很容易,你可以去查一下,网上有很多纯C实现的子串求法
string的substr函数是C++的,是STL库中的,而非纯C的实现,纯C的标准库中没有直接获得子串的方法,自己写很容易
㈦ c语言字符串函数
for(初始化;判断语句;循环变量的变化)
即使没有,冒号不可以省略;
!(len2=strlen(s2))-》从右边看,把strlen(s2)值赋给len2,然后(!len2),主要是否判断是否为空
㈧ C语言字符串处理函数
其实那些字符串函数并不复杂。任何一个的实现都不出五行代码:
char *strcpy( char *dst, const char *src ) {
char *destination = dst;
while( *dst++ = *src++ )
;
return destination;
}
char *strcat( char *dst, const char *src ) {
char *destination = dst;
while( *dst++ )
;
strcpy( --dst, src );
return destination;
}
int strcmp( const char *s1, const char *s2 ) {
for( ; *s1 == *s2; s1++, s2++ )
if( *s1 == '\0' ) return 0;
return *s1 - *s2;
}
unsigned strlen( const char *s ) {
const char *t = s;
while( *t++ )
;
return --t - s;
}
㈨ C语言 字符串函数
自己再写一个也不是什么困难的事情啊:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <ctype.h>
int nstrcmp(const char *a,const char *b)
{
while (*a&&*b)
{
if (*a==*b||isalpha(*a)&&isalpha(*b)&&tolower(*a)==tolower(*b)) {
a++;
b++;
}
}
return *a-*b;
}
int main(void)
{
char a[]="ABCe";
char b[]="aBcE";
printf("%d",nstrcmp(a,b));
return 0;
}
//---------------------------------------------------------------------------
㈩ C语言中有哪些字符串处理函数
你可以看一下头文件string.h和stdio.h里面的相关函数声明,好多好多。
这里就不一一列出了……比如下面列出的只是其中一部分……
_CRTIMP char * __cdecl strcpy(char *, const char *);
_CRTIMP char * __cdecl strcat(char *, const char *);
_CRTIMP int __cdecl strcmp(const char *, const char *);
_CRTIMP size_t __cdecl strlen(const char *);
_CRTIMP char * __cdecl strchr(const char *, int);
_CRTIMP int __cdecl _strcmpi(const char *, const char *);
_CRTIMP int __cdecl _stricmp(const char *, const char *);
_CRTIMP int __cdecl strcoll(const char *, const char *);
_CRTIMP int __cdecl _stricoll(const char *, const char *);
_CRTIMP int __cdecl _strncoll(const char *, const char *, size_t);
_CRTIMP int __cdecl _strnicoll(const char *, const char *, size_t);
_CRTIMP size_t __cdecl strcspn(const char *, const char *);
_CRTIMP char * __cdecl _strp(const char *);
_CRTIMP char * __cdecl _strerror(const char *);
_CRTIMP char * __cdecl strerror(int);
_CRTIMP char * __cdecl _strlwr(char *);
_CRTIMP char * __cdecl strncat(char *, const char *, size_t);
_CRTIMP int __cdecl strncmp(const char *, const char *, size_t);
_CRTIMP int __cdecl _strnicmp(const char *, const char *, size_t);
_CRTIMP char * __cdecl strncpy(char *, const char *, size_t);
_CRTIMP char * __cdecl _strnset(char *, int, size_t);
_CRTIMP char * __cdecl strpbrk(const char *, const char *);
_CRTIMP char * __cdecl strrchr(const char *, int);
_CRTIMP char * __cdecl _strrev(char *);
_CRTIMP size_t __cdecl strspn(const char *, const char *);
_CRTIMP char * __cdecl strstr(const char *, const char *);
_CRTIMP char * __cdecl strtok(char *, const char *);
_CRTIMP char * __cdecl _strupr(char *);
_CRTIMP size_t __cdecl strxfrm (char *, const char *, size_t);