c语言字符串处理
Ⅰ 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);
Ⅱ C语言程序设计 字符串处理
子字符串之间可以用'\n’来分隔,以实现子串的定位,伪代码可以这样: #include <stdio.h> #include <fcntl.h> #include <string.h> #include <unstdio.h> int count(char str,int i) { if(遇到‘\n’) i++; return i; }; int chang() { }; void() { }; main() { int a,b,c; 请输入要选择操作的编号1-4; switch{ case 1:count();break; 2: change();break; 3: del();break; 4: exit(); } }
Ⅲ C语言程序设计:字符串处理操作。条件:(不使用系统库函数)编写函数实现对字符串进行常用操作处理,包括
对栈顶的两个值(或者一个,比如取反)做一次数学或位操作。 其中,栈顶的那个值是第二个操作数。 它会弹出压入的值,并把结果放在栈顶。 这个函数遵循 L ua 对应的操作符
设置一个新的 panic 函数,并返回之前设置的那个。
调用一个函数。
要调用一个函数请遵循以下协议: 首先,要调用的函数应该被压入栈; 接着,把需要传递给这个函数的参数按正序压栈; 这是指第一个参数首先压栈。 最后调用一下 lua_call; nargs 是你压入栈的参数个数。 当函数调用完毕后,所有的参数以及函数本身都会出栈。 而函数的返回值这时则被压栈。 返回值的个数将被调整为 nresults 个, 除非 nresults 被设置成 LUA_MULTRET。 在这种情况下,所有的返回值都被压入堆栈中。 Lua 会保证返回值都放入栈空间中。 函数返回值将按正序压栈(第一个返回值首先压栈), 因此在调用结束后,最后一个返回值将被放在栈顶。
被调用函数内发生的错误将(通过 longjmp )一直上抛。
为了正确的和 Lua 通讯, C 函数必须使用下列协议。 这个协议定义了参数以及返回值传递方法: C 函数通过 Lua 中的栈来接受参数, 参数以正序入栈(第一个参数首先入栈)。 因此,当函数开始的时候, lu a_gettop(L) 可以返回函数收到的参数个数。 第一个参数(如果有的话)在索引 1 的地方, 而最后一个参数在索引 lua_gettop(L) 处。 当需要向 Lu a 返回值的时候, C 函数只需要把它们以正序压到堆栈上(第一个返回值最先压入), 然后返回这些返回值的个数。 在这些返回值之下的,堆栈上的东西都会被 L ua 丢掉。 和 L ua 函数一样,从 Lua 中调用 C 函数也可以有很多返回值。
Ⅳ 在C语言中处理字符的几种常用方法
基本上两种:字符数组和字符指针。字符数组名是常量,字符指针是变量
1、用字符数组:一个一维字符数组存储一个字符串,二维数组存储多个字符串。如:
int i;
char s1[]="abc",s2[][80]={"ABCD","XYZ"},s3[80];
scanf("%s",s3);
printf("%s,%s\n",s1,s3);
for(i=0;i<2;i++)printf("%s\n",s2[i]);
2、用字符指针:字符指针指向一个字符串,字符指针数组处理多个字符串。如:
int i;
char *p1="abc",*p2[]={"ABCD","XYZ"},**p;
printf("%s\n",p1);
for(i=0;i<2;i++)printf("%s\n",p2[i]);
p=p2;
for(i=0;i<2;i++)printf("%s\n",*p++);
3、字符数组与字符指针配合一起使用:字符数组提供字符串的存储,处理字符串用字符指针
char s[80],*p;
p=s;
scanf("%s",p);
printf("%s",p);
在string.h中所有处理字符串函数,对字符数组和字符指针都适用。
Ⅳ c语言编程:字符串处理
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intsortArr(int*arr,intcount)
{
inti=0,j=0,tmp;
for(i=0;i<count;i++)
{
for(j=i+1;j<count;j++)
{
if(arr[i]>arr[j])
{
tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
}
}
return0;
}
voidmain()
{
intrv=0;
intbuf[300]={0};
intcount=0;
inti=0;
chartmp;
intnum=0;
FILE*fp1=fopen("1.txt","r");
FILE*fp2=fopen("2.txt","r");
FILE*fp3=fopen("3.txt","w+");
if(fp1==NULL||fp2==NULL)
{
printf("文件打开失败 ");
rv=-1;
gotoEnd;
}
while(!feof(fp1))
{
fscanf(fp1,"%d",&buf[count++]);
}
fclose(fp1);
while(!feof(fp2))
{
fscanf(fp2,"%d",&buf[count++]);
}
fclose(fp2);
sortArr(buf,count);
for(i=0;i<count;i++)
{
fprintf(fp3,"%d ",buf[i]);
}
fclose(fp3);
End:
system("pause");
}
Ⅵ C语言中给输入的字符串分段处理
char
a[1024];
for(int
i
=
0;
i
<
1024;
i
++
)
{
scanf("%c",&a[i]);
//输入字符串到一个数组中
if(a[i]
=
'\n');
//当你安回车键时,表示输入的字符串借宿用break
跳出,循环
{
break;
}
}
Ⅶ 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语言字符串处理函数strcmp
strcmp是比较古老的函数了,它就是在检查'\0'为结尾的字符串,你的字符数组位置为5时,没有位置来存储'\0',所以函数strcmp检查时候不会停止,会继续向后面检查(后面的地址没有赋值,都是随机的数,直到遇见'0'),所以不会相等。
Ⅸ c语言字符串处理函数的英文原名
函数名: strrchr
功 能: 在串中查找指定字符的最后一个出现
用 法: char *strrchr(char *str, char c);
举例:
[cpp] view plain
char fullname="./lib/lib1.so";
char *ptr;
ptr = strrchr(fullname,'/');
printf("filename is %s",++ptr);
//运行结果:filename is lib1.so
函数名: strchr
功 能: 在串中查找指定字符的第一个出现
用 法: char *strchr(char *str, char c);
举例:
[cpp] view plain
char fullname="./lib/lib1.so";
char *ptr;
ptr = strrchr(fullname,'.');
printf("after strchr() is %s",++ptr);
//运行结果:after strchr() is /lib/lib1.so
函数名: strtok
功 能: 在串中查找指定字符的第一个出现
用 法: char *strtok(char *s, char *delim);
说明:
1.strtok函数的实质上的处理是,strtok在s中查找包含在delim中的字符并用NULL(’/0′)来替换,直到找遍整个字符串。这句话有两层含义:(1)每次调用strtok函数只能获得一个分割单位。(2)要获得所有的分割单元必须反复调用strtok函数。
2.strtok函数以后的调用时的需用NULL来替换s.
3.形参s(要分割的字符串)对应的变量应用char s[]=”….”形式,而不能用char *s=”….”形式。
举例:
[cpp] view plain
void main()
{
char buf[]=”Golden Global View”;
char* token = strtok( buf, ” “);
while( token != NULL )
{
printf( ”%s “, token );
token = strtok( NULL, ” “);
}
return 0;
}
/*其结果为:
Golden
Global
View
*/
Ⅹ c语言中有没有字符串类型如何存放和处理字符串
没有字符串类型,但是C语言中字符串实际就是多个字符链接在一起,所以可以用字符数组或者指针。可以这样定义
char s[]="this is a string";
C语言也有string.h头文件,使用这个头文件可以直接这样
string s="this is a string";
望采纳