C字符串笔试题
C字符串笔试题
C语言是世界上最流行、使用最广泛的高级程序设计语言之一。A下面就由范文网小编为大家介绍一下C字符串笔试题的文章,欢迎阅读。
C字符串笔试题篇1
一、void * memcpy( void* dest, const void* src, size_t count )
表头文件: #include
定义函数: void *memcpy(void *dest, const void *src, size_t n)
函数说明:
memcpy用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy不同的是,memcpy会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束。
返回值: 返回指向dest的指针
附加说明: 指针src和dest所指的内存区域不可重叠
void * memcpy( void* dest, const void* src, size_t count )
{
assert((strDest!=NULL) && (strSrc !=NULL));
char* d = (char*)dest;
const char* s = (const char*)src;
while( count-->0 )
*d++ = *s++
return dest ;
}
注解:
1、size_t 就是unsigned int
2、
函数名: assert(断言)
功 能: 测试一个条件并可能使程序终止
用 法: void assert(int expression);
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:
#include
void assert( int expression );
assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。
二、char *strcpy(char *strDest, const char *strSrc)
字符串复制函数
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL)); // 2分
char *address = strDest; // 2分
while( (*strDest++ = * strSrc++) != ‘\0’ ); // 2分
return address ; // 2分
}
const char *strSrc中的const是指字符串内容为const,而不是说strSrc是const的,如果要指定strSrc是const,应该写成 char * const strSrc 。
C字符串笔试题篇2
一、int Strcmp(char *str1, char *str2)
字符串比较函数
int Strcmp(char *str1, char *str2)
{
int i=0;
int b=0;
while(str1[i]||str2[i])
{
if(str1[i]>str2[i])
{
b=1;break;
}
else if(str1[i]
{
b=-1;break;
}
i++;
}
return b;
}
当只要求判断是否相等时,可简化为:
int strcmp(char *source, char *dest)
{
while ( (*source != '\0') && (*source == *dest))
{
source++;
dest++;
}
return ( (*source) - (*dest) ) ? -1 : 0;
}
二、int strlen(const char* str)
计算字符串长度
int strlen(const char* str)
{
assert(str != NULL);
int len = 0;
while (*str++!='\0')
len++;
return len;
}
C字符串笔试题篇3
void reverse(char *ch)
字符串反转函数
void reverse_str(char *ch)
{
int len;
int i;
len = strlen(ch)-1;
char ctemp;
for(i = 0; i < len-i; i++)
{
ctemp = ch[i];
ch[i] = ch[len-i];
ch[len-i] = ctemp;
}
ch[len+1] = 0;
}
void reverse_str2(char *ch)
{
int len;
int i;
len = strlen(ch)-1;
for(i = 0; i < len-i; i++)
{
ch[i] = ch[i] ^ ch[len-i];
ch[len-i] = ch[len-i] ^ ch[i];
ch[i] = ch[i] ^ ch[len-i];
}
ch[len+1] = 0;
}