#includestdio.h
創(chuàng)新互聯(lián)從2013年開(kāi)始,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元廈門(mén)做網(wǎng)站,已為上家服務(wù),為廈門(mén)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):13518219792
void s_trcat(char *s1,char *s2);//連接兩個(gè)字符串
void s_trcpy(char *s1,char *s2);//字符串s2復(fù)制給字符串s1
int s_trcmp(char *s1,char *s2);//兩個(gè)字符串比較大小
int s_trlen(char *s);//計(jì)算一個(gè)字符串的長(zhǎng)度
int main()
{
char s1[11]="12345", s2[11]="ABCDE";
char x1[11]="12345",x2[11]="SSSKK";
char str1[11]="ABCD",str2[11]="ACB";
char s[11]="ABCDEF";
int n,len;
s_trcat(s1,s2);//拼接s1,s2
printf("拼接s1,s2,輸出s1\n");
puts(s1);
s_trcpy(x1,x2);//將x2的內(nèi)容復(fù)制給x1
printf("將x2的內(nèi)容復(fù)制給x1,輸出x1\n");
puts(x1);
n=s_trcmp(str1,str2);//比較str1與str2大小,返回一個(gè)整數(shù),代表比較的結(jié)果
if(n==0)
printf("str1與str2相同\n");
if(n==1)
printf("str1大于str2\n");
if(n==-1)
printf("str1小于str2\n");
len=s_trlen(s);//計(jì)算字符串s的長(zhǎng)度,并返回一個(gè)整數(shù)(字符串長(zhǎng)度),
printf("字符串s的長(zhǎng)度:%d\n",len);
}
void s_trcat(char *s1,char *s2)//連接兩個(gè)字符串
{
char *p=s1;
char *q=s2;
while(*p)
p++;
while(*q)
{
*p=*q;
p++;
q++;
}
*p='\0';//給新字符串尾部加個(gè)結(jié)束符
}
void s_trcpy(char *s1,char *s2)//字符串s2復(fù)制給字符串s1
{
char *p=s1;
char *q=s2;
while(*p++=*q++);
*p='\0';//給新字符串尾部加個(gè)結(jié)束符
}
int s_trcmp(char *s1,char *s2)//兩個(gè)字符串比較大小
{
char *p=s1;
char *q=s2;
int len1=0,len2=0;
while(*p++)
len1++;
while(*q++)
len2++;
p=s1,q=s2;
while(*p!='\0'*q!='\0')
{
if(*p*q)
return 1;
if(*p*q)
return -1;
p++;
q++;
}
if(len1==len2)
return 0;//返回0,兩個(gè)字符串相同
if(len1len2)
return 1;//返回1,前大于后
if(len1len2)
return -1;//返回-1,前小于后
}
int s_trlen(char *s)//計(jì)算一個(gè)字符串的長(zhǎng)度
{
char *p=s;
int len=0;
while(*p++)
len++;
return len;//返回字符串長(zhǎng)度
}
C語(yǔ)言代碼和運(yùn)行結(jié)果如下:
輸出符合示例,加解密均正確,望采納~
附源碼鏈接:字符串加解密
strcat(char
*p1,char
*p2,char
*p)
{
while(*p1)
//檢查指針是否到了'\0'
{
*p=*p1;
//賦值
p1++;
//指針指向下一個(gè)字符
p++;
}
while(*p2)
{
*p=*p2;
p2++;
p++;
}
*p='\0';
//為str3結(jié)尾加上'\0'
}
這個(gè)是strcat是3個(gè)形參的,兩個(gè)形參的是這樣寫(xiě)的
void
strcat(char
*p1,
char
*p2)
{
while(*p1)
{
p1++;
}
while(*p2)
{
*p1
=
*p2;
p1++;
p2++;
}
*p1
=
'\0';
}
注意
p1開(kāi)的數(shù)組要比p2大哦
int
strlen(char
*p1)
{
char
*s=p1;
//將指針s指向指針p,即指向str1
while(*s)
//當(dāng)*s不為'\0'的時(shí)候
s++;
//指針指向下一個(gè)字符
return
(s-p1);
//當(dāng)s指向字符串的'\0'的前一位,而p指向的是開(kāi)頭,所以s-p就是長(zhǎng)度
}
strcpy(char
*p1,
char
*p2)
{
while(*p2)
{
*p1
=
*p2;
p1++;
p2++;
}
}
strcmp(char
*p1,
char
*p2)
{
//當(dāng)*p1,*p2不為空,且*p1
==
*p2,循環(huán)執(zhí)行
while(*p1
*p2
(*p1
==
*p2))
{
//指向下一個(gè)元素
p1++;
p2++;
}
if(*p1
*p2)
return
1;
else
if(*p1
*p2)
return
-1;
return
0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include stdio.h
#include time.h
/*把從src地址開(kāi)始的字符串復(fù)制到以dest開(kāi)始的字符串中*/
char* strcopy (char* dest, char *src) {
char* r = dest;
while((*r++ = *src++)!='\0');
return dest;
}
int main () {
char *str1="abcde";
char *str2;
str2 = strcopy (str2, str1); /*把str1復(fù)制到str2*/
puts (str2);
return 0;
}