编C语言程序:用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和strlwr的功能

作者&投稿:翟武 (若有异议请与网页底部的电邮联系)
C语言编程:用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和~

strcat(char
*p1,char
*p2,char
*p)
{
while(*p1)
//检查指针是否到了'\0'
{
*p=*p1;
//赋值
p1++;
//指针指向下一个字符
p++;
}
while(*p2)
{
*p=*p2;
p2++;
p++;
}
*p='\0';
//为str3结尾加上'\0'
}
这个是strcat是3个形参的,两个形参的是这样写的
void
strcat(char
*p1,
char
*p2)
{
while(*p1)
{
p1++;
}
while(*p2)
{
*p1
=
*p2;
p1++;
p2++;
}
*p1
=
'\0';
}
注意
p1开的数组要比p2大哦
int
strlen(char
*p1)
{
char
*s=p1;
//将指针s指向指针p,即指向str1
while(*s)
//当*s不为'\0'的时候
s++;
//指针指向下一个字符
return
(s-p1);
//当s指向字符串的'\0'的前一位,而p指向的是开头,所以s-p就是长度
}
strcpy(char
*p1,
char
*p2)
{
while(*p2)
{
*p1
=
*p2;
p1++;
p2++;
}
}
strcmp(char
*p1,
char
*p2)
{
//当*p1,*p2不为空,且*p1
==
*p2,循环执行
while(*p1
&&
*p2
&&
(*p1
==
*p2))
{
//指向下一个元素
p1++;
p2++;
}
if(*p1>
*p2)
return
1;
else
if(*p1<
*p2)
return
-1;
return
0;
}

strcat(char *p1,char *p2,char *p)
{
while(*p1) //检查指针是否到了'\0'
{
*p=*p1; //赋值
p1++; //指针指向下一个字符
p++;
}
while(*p2)
{
*p=*p2;
p2++;
p++;
}
*p='\0'; //为str3结尾加上'\0'
}

这个是strcat是3个形参的,两个形参的是这样写的
void strcat(char *p1, char *p2)
{
while(*p1)
{
p1++;
}
while(*p2)
{
*p1 = *p2;
p1++;
p2++;
}
*p1 = '\0';
}
注意 p1开的数组要比p2大哦


int strlen(char *p1)
{
char *s=p1; //将指针s指向指针p,即指向str1
while(*s) //当*s不为'\0'的时候
s++; //指针指向下一个字符
return (s-p1); //当s指向字符串的'\0'的前一位,而p指向的是开头,所以s-p就是长度
}


strcpy(char *p1, char *p2)
{
while(*p2)
{
*p1 = *p2;
p1++;
p2++;
}
}


strcmp(char *p1, char *p2)
{
//当*p1,*p2不为空,且*p1 == *p2,循环执行
while(*p1 && *p2 && (*p1 == *p2))
{
//指向下一个元素
p1++;
p2++;
}

if(*p1> *p2)
return 1;
else if(*p1< *p2)
return -1;

return 0;
}

/***
*char *strcat(dst, src) - concatenate (append) one string to another
*
*Purpose:
* Concatenates src onto the end of dest. Assumes enough
* space in dest.
*
*Entry:
* char *dst - string to which "src" is to be appended
* const char *src - string to be appended to the end of "dst"
*
*Exit:
* The address of "dst"
*
*Exceptions:
*
*******************************************************************************/

char * __cdecl strcat (
char * dst,
const char * src
)
{
char * cp = dst;

while( *cp )
cp++; /* find end of dst */

while( *cp++ = *src++ ) ; /* Copy src to end of dst */

return( dst ); /* return dst */

}

/***
*char *strcpy(dst, src) - copy one string over another
*
*Purpose:
* Copies the string src into the spot specified by
* dest; assumes enough room.
*
*Entry:
* char * dst - string over which "src" is to be copied
* const char * src - string to be copied over "dst"
*
*Exit:
* The address of "dst"
*
*Exceptions:
*******************************************************************************/

char * __cdecl strcpy(char * dst, const char * src)
{
char * cp = dst;

while( *cp++ = *src++ )
; /* Copy src over dst */

return( dst );
}
//以上是微软的实现,更多的到VC++安装盘下CRT目录找吧

strlen(char *str)
{
int n=0;
char *p=str;
while(*p++)n++;
return n;
}
strcat(char *str1,str2)
{
char *p1,*p2;
p1=str1;
p2=str2;
p1+=strlen(str1);
while(*p2)
*p1++=*p2++;
return
}
strcpy(char *str1,str2)
{
char *p1,*p2;
p1=str1;
p2=str2;
while(*p2)
*p1++=*p2++;
return

}
strcmp(char *str1,str2)
{
char *p1,*p2;
p1=str1;
p2=str2;
while(*p2 && *p1)
if(*(p1++)- *(p2++) )return *(p1++)- *(p2++) ;
return 0;

}

其它同理!!!!!!!!!

呵呵!昨天刚答过,不会是作业吧!

http://zhidao.baidu.com/question/7908569.html

void strlwr(char s[])
{int i;
for(i=0;s!='\0';i++)
if(s>='A'&&s<='Z')
s=s+32;
}


C语言 求救 二.实验内容: ⑴ 编写自定义子函数实现:利用指针实现求一维...
int j=0;for(;*p!='\\0';p++)if(*p!=ch)(in+j++)=*p;(in+j)='\\0';} int main(){ char str[100]={0};char ch;printf("请输入一个字符串:");gets(str);printf("请输入一个字符:");scanf("%c",&ch);delChar(str,ch);printf("字符串删除字符后输出:");puts(str);} ...

用C语言编写一个程序,在主函数输入5个成绩,通过调用自定义函数实现输出...
\/\/满意请采纳#include<stdio.h>void prin(int*a);int main(){int a[5]={0},n,i,sum=0;for(i=0;i<5;i++){scanf("%d",&a[i]);}prin(a);return 0;}void prin(int*a){int i,n=0;for(i=0;i<5;i++){if(a[i]<60)n++;}printf("%d\\n",n);} ...

C语言为何要引入自定义类型?
第一种,基本就是下面这种情况。int year;这个意思定义了一个名字叫year的int型变量,这样看其实没什么问题对吧。但是如果我的程序有很多变量,怎么办?int year,month,hour,second,day,i,t,s;这样用起来就会很难受了,int型变量全部写在一起,完全没有分类的话,找变量不好找,然后就是只能通过...

C语言自定义数据类型
自定义数据类型就是用户可以随时在程序中自行定义新的数据类型。自定义数据类型时需要设置数据类型的名称及其成员。数据类型成员各属性的设置方法等同于变量设置时相应属性的设置方法。C中定义数据类型是为了容易编程,定义了数据类型之后又定义了数据类型之间的各种运算,这样对编程人来说就会方便很多。如不定义...

C语言,为什么这个程序自定义函数里的p[i]是内容而不是地址啊?_百度知 ...
这是因为在形参表中,int *p是一个指向int的指针,所以,p+i是一个地址,而p[i]则是完全等价于*(p+i),就是一个指针所指向单元的值。

在C语言中,自定义一个数组,100个元素,对其进行随机赋值,数值范围为0...
代码如下:include <stdio.h>#include <stdlib.h>#include int main(){int numbers[100], i, j, temp;srand(time(NULL));\/\/ 产生随机数for (i = 0; i < 100; i++) {numbers[i] = rand() % (255 + 1);}\/\/ 冒泡法排序for (i = 0; i < (100 - 1); i++) {for (j ...

C语言编程 自定义从字符串中删除指定的字符函数
char* remove_chars(char *str,const char *rmchars)\/\/删除str中所有包含在rmchars中的字符 { char buff[256]={0};char *ps1,*ps2;ps1=(char *)rmchars;while(*ps1)buff[*ps1++]=1;\/\/遍历rmchars,将要删除的字符对应在buff中的位置1 ps2=str;while(*ps2)\/\/遍历str,将要删除的字符置为...

C语言编程创建自定义函数sort(),sort函数中实现选择法升序排序,主函数...
include <stdio.h>\/\/选择排序算法,升序void sort(int *arr,int n){ int i,j,k; int tmp; for(i=0;i<n-1;i++) { k=i; \/\/开始一趟选择排序,假定第i个元素是后面n-i+1个未排序的元素中最小的元素 for(j=i+1;j<n;j++) {if(arr[k] > arr[j]) \/...

c语言,指针,数组,自定义函数。 如下 #include<stdio.h> void s(int...
include "stdio.h"void s(int *a,int n)\/\/最好指定数组的长度n{ int t1,t2,i; t1=a[n-2]; \/\/末位两个元素要存回首位两位,先保存 t2=a[n-1]; for(i=n-1;i>1;i--) \/\/其它位置,循环向后移两位就行,后8位就确定了 { a[i]=a[i-2]; } a...

C语言,请编写函数fun(自定义函数),其功能是:将一组得分中,去掉一个最...
include"stdio.h"#define N 10int findmax(float*a,int n){int temp = 0;for (int i=1;i<n;i++){if (a[temp]<a[i]){temp =i;}}return temp;}int findmin(float*a,int n){int temp = 0;for (int i=1;i<n;i++){if (a[temp]>a[i]){temp =i;}}return temp;}...

罗湖区19351599292: C语言编程:用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和 -
太逃奥必: void strcat(char s1[],char s2[]) {int i,j; for(i=0;s1[i]!='\0';i++); for(j=0;s2[j]!='\0';j++) s1[i++]=s2[j]; s1[i]='\0'; } void strcpy(char a[],char b[]) { int i=0,j=0; while((a[i++]=b[j++])!='\0');} int strcmp(char s1[],char s2[]) {int i; for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++) { if(s1[i]>...

罗湖区19351599292: 用C语言程序,通过自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和的功能 -
太逃奥必: 0.0+【我自己做的 【strlen { char ch1[10]="abc"; int i; for(i=0;ch1[i]!='\0';i++);//循环到不是\0为假(结尾) printf("len=%d",i);//循环次数就是字符串的长度 getch(); } 【strcpy { char ch1[20]="abcde",ch2[20]; int i; for(i=0;ch1[i]!='\0';i++) ...

罗湖区19351599292: c语言输入输出字符串自定义函数该怎么写啊 -
太逃奥必: 自定义函数时字符串的格式:char *function(); char *function(char ch[]) { return ch; } main { char c[]={"ABCDEFG"}; printf("%s",function(c)); }

罗湖区19351599292: c语言中完成一个自定义函数,替换指定字符串中的对应字符的代码 -
太逃奥必: BOOL strrep(char* strRes,char* from, char* to){ int i; BOOL flag = 0; char *p,*q,*ts; for(i = 0; strRes[i]; ++i) { if(strRes[i] == from[0]) { p = strRes + i; q = from; while(*q && (*p++ == *q++)); if(*q == '\0') { ts = (char *)malloc(strlen(strRes) + 1)...

罗湖区19351599292: 用c语言编程编写函数,实现把一个字符串连接到后面一个字符串.并编写程序,在程序中自定义一个字符串数组 -
太逃奥必: #include <stdio.h> #include<conio.h> #include <string.h> char *my_strcat(char *s1,char *s2) { while(*(++s1)); while(*s1++=*s2++); return s1; } int main() { char s1[50]={"my name is Bob"},s2[50]={"2011119465"}; my_strcat(s1,s2); printf("%s",s1); getch(); }我写的一个字符连接函数,-物联网校企联盟技术部

罗湖区19351599292: c语言:用自定义函数实现字符串比较! -
太逃奥必: int cmp_of_str(char *s1, char *s2) {while( (*s1 != '\0') && (*s1 == *s2) ) //若果字符串没到串尾且字符相等,则继续比较{s1++;s2++;}return *s1 - *s2; //等于时返回0,大于返回正差值,小于返回负差值 }

罗湖区19351599292: 编C语言程序:用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和strlwr的功能
太逃奥必: /*** *char *strcat(dst, src) - concatenate (append) one string to another * *Purpose: * Concatenates src onto the end of dest. Assumes enough * space in dest. * *Entry: * char *dst - string to which "src" is to be appended * const char *src - string to...

罗湖区19351599292: C语言,用自定义函数实现:给定字符串…输出其长度 -
太逃奥必: #include<stdio.h> int length(const char* str) { int i=0; while( str[i]!='\0' ) i++; return i; } int main() { const char* test = "my test"; printf("%d", length(test)); }

罗湖区19351599292: C语言,求解! 编写用户自定义函数,实现给定一个字符串,得到该字符串的长度,并实现将其中的小写字母 -
太逃奥必: for循环计数,减32

罗湖区19351599292: C语言将数字转换为字符型输出(用函数) -
太逃奥必: 给,已经编译运行确认: #include<conio.h> #include<stdio.h>char s[20]={NULL};//用以存放字符型输出结果的字符数组void inttostring(int n)//转换用的函数 {int i=0,j;char temp; while(n)//先将整数逆序保存进数组{s[i]=n%10+'0';//将十进制...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网