C语言编写一个程序输入两个字符串1和字符串2(两个字符串长度不超过20),把字符串2连接到字符串1后面,并输出 有两个字符串,利用函数实现两个字符串的链接,两个字符串比较大...

\u7f16\u5199\u4e00\u4e2ac\u8bed\u8a00\u7a0b\u5e8f,\u8f93\u5165\u5b57\u7b26\u4e321\u548c\u5b57\u7b26\u4e322,\u5982\u679c\u5b57\u7b26\u4e321\u5305\u542b\u5b57\u7b26\u4e322,\u5219\u8fd4\u56de\u503c1,\u4e0d\u5305\u542b\u5219\u8fd4\u56de\u503c0

//\u4f60\u7684\u7a0b\u5e8f\u4e0d\u8bf4\u4e86\uff0c\u4ec0\u4e48\u65f6\u5019\u5b9e\u73b0\u626b\u63cf\u6bcf\u4e00\u4e2a\u5b57\u7b26\u4e86\uff1f#include "stdafx.h"int fun(char str[20],char ch[20]){ int i,j,k;for(i=0;str[i]!=0;i++){if(str[i]==ch[0]){k=1;for(j=0;ch[j]!=0;j++){if(str[i+j]!=ch[j]){k=0;break;}}}if(k==1)return 1;}return 0;}int main(){ char str[20],ch[20];int s;printf("enter a string :");gets(str);printf("enter you want delete letter : ");gets(ch);s=fun(str,ch);printf("%d",s);return 0;}




char * mystrcat(char *str1, char *str2) { if((str1==NULL)||(str2==NULL)) return NULL; char *pt = str1; while(*str1!='\0') str1++; while(*str2!='\0') *str1++ = *str2++; *str1 = '\0'; return pt; } int mystrcmp(const char * src, const char * dst ) { int ret = 0 ; while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst) ++src, ++dst; if ( ret 0 ) ret = 1 ; return( ret ); } int myStrlen(const char *str) \u3000\u3000{\u3000\u3000if(str==NULL) return 0;\u3000\u3000int len = 0;\u3000\u3000for(; *str++ != '\0'; )\u3000\u3000{\u3000\u3000len++;\u3000\u3000}\u3000\u3000return len;\u3000\u3000}char * mystrcpy (char * dst, char * src)\u3000\u3000{\u3000\u3000char * cp = dst;\u3000\u3000while( *cp++ = *src++ )\u3000\u3000; \u3000\u3000return( dst );\u3000\u3000}

 说白了就是strcat

char *strcat(char *strDest, const char *strSrc) //将源字符串加const,表明其为输入参数

  {

  char *address = strDest; //该语句若放在assert之后,编译出错

  assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的地址加非0断言

  while(*strDest) //是while(*strDest!=’\0’)的简化形式

  { //若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,那么strDest

  strDest++; //将指向'\0'的下一个位置。/所以要在循环体内++;因为要是*strDest最后指

  } //向该字符串的结束标志’\0’。

  while(*strDest++ = *strSrc++)

  {  
*p++等价于*(p++)。至于为什么会等价呢?根据c语言的优先级。*与++的优先级同处在第二级别上。他们的优先级是一样的,又因为处在第二级别的优先级运算符是结合方向是从右到左,所以当出现*p++这样的表达式的时候,根据优先级别相同,并且结合方向是从右到左,所以就等价于*(p++)了。那么也就是,先将p指针移动到下个p指针所指向元素的地址的下一个地址,然后再对那个地址取值。(*p)++是取p所指向地址的值,然后再将这个值+1
  NULL; //该循环条件内可以用++,

  } //此处可以加语句*strDest=’\0’;无必要

#include<stdio.h>
#include<stdlib.h>
void main()
{
char a[20],b[20]; //创建两个字符串数组,大小可以自定,但要大于20
int n=0,m=0,i,j;
do
{
scanf("%c",&a[n]);
n++;
}
while(a[n-1]!='\n'); //输入第一个数组
n=n-1; //将n重新赋值,为第一个数组的最后一个元素(\0)标志
do
{
scanf("%c",&b[m]);
m++;
}
while(b[m-1]!='\n'); //输入第二个数组
b[m-1]='\0'; //第二个数组的结束标志
for(i=n,j=0;j<=m-1;i++,j++)
{
a[i]=b[j];
} //将第二个字符数组的内容连接到第一个字符数组的末尾
printf("%s\n",a);
system("pause");
}

已测,无误。

/*
I love my friends!
Press any key to continue
*/
#include <stdio.h>
char *StrCat(char strDest[], char strSrc[]) {
int i = 0,j = 0;
while(strDest[i]) ++i;
while(strDest[i++] = strSrc[j++]);
return strDest;
}

int main() {
char s[30] = "I love my ";
char t[] = "friends!";
printf("%s\n",StrCat(s,t));
return 0;
}

#include<stdio.h>
int main()
{char s1[40],s2[20];
int i,j;
gets(s1);
gets(s2);
for(i=0;s1[i];i++);
for(j=0;s2[j];j++)
s1[i++]=s2[j];
s1[i]='\0';
puts(s1);
return 0;

}

  • 缂栦竴涓▼搴,浠庨敭鐩杈撳叆涓や釜瀛楃涓a鍜宐,涓嶄娇鐢ㄥ瓧绗︿覆鍑芥暟,姣旇緝a鍜宐鐨...
    绛旓細int stringcmp(char *s1,char *s2){ while(*s1||*s2) //濡傛灉S1鍜孲2姣旇緝瀹屾瘯 锛堚榎\0鈥欙級璺冲嚭寰幆锛泏 if(*s1-*s2) //鍒ゆ柇S1鍜孲2瀵瑰簲鐨勫瓧绗︽槸涓嶆槸涓嶅悓锛況eturn *s1-*s2; //濡傛灉涓嶅悓锛岃繑鍥濻1鍜孲2鐨凙SCII涔嬪樊锛沞lse // 濡傛灉鐩稿悓锛岃鎸囬拡鎸囧悜S1鍜孲2鐨勪笅涓涓瓧绗姣旇緝 s2++,s1++;} r...
  • c璇█浠庨敭鐩杈撳叆涓や釜瀛楃涓a鍜宐,骞跺湪a涓蹭腑鐨勬渶澶у厓绱犲悗杈规彃鍏ュ瓧绗︿覆b...
    绛旓細; //杈撳叆涓2; char *newstr = (char*)calloc(strlen(string1) + strlen(string2) + 1, sizeof(char)); //鍒涘缓涓涓垰濂藉绾涓や釜涓茬殑鏂颁覆; if(!newstr) //妫鏌ユ槸鍚﹀垱寤烘垚鍔; { printf("鍐呭瓨涓嶈冻,绋嬪簭缁撴潫!\n"); exit(1);...
  • c璇█绋嬪簭浠庨敭鐩樹笂杈撳叆涓や釜瀛楃涓鑻ヤ笉鐩哥瓑灏嗙煭鐨勫瓧绗︿覆杩炴帴鍒伴暱鐨勫瓧绗...
    绛旓細include<stdio.h> include<string.h> void main(){ char s1[1000], s2[1000];gets(s1);gets(s2);if(strlen(s1)==strlen(s2))printf("s1,s2鐩哥瓑");else if(strlen(s1)<strlen(s2)){ strcat(s2,s1); puts(s2);} else { strcat(s1,s2); puts(s1);} } ...
  • 鐢╟璇█缂栧啓绋嬪簭,鎻愮ず鐢ㄦ埛杈撳叆涓や釜瀛楃涓,骞舵楠岀涓涓瀛楃涓叉槸鍚︿负绗...
    绛旓細return 1;if (source[k]=='\0')return 0;i++;} return 0;} int main(){ char str_1[20];char str_2[20];printf("璇疯緭鍏ョ涓涓瓧绗︿覆锛");scanf("%s",str_1);printf("璇杈撳叆绗簩涓瓧绗︿覆锛");scanf("%s",str_2);if(isstr(str_2,str_1)==1){ printf("绗竴涓瓧绗︿覆鏄...
  • ...缂栧啓涓绋嬪簭,瀹炵幇浠庨敭鐩杈撳叆涓や釜瀛楃涓str1鍜宻tr2,瑕佹眰鍚勪覆涓棤閲嶅...
    绛旓細return 0;}int main(){ int i, len, j=0; char s1[100], s2[100], s3[100];/*淇濆瓨涓や釜瀛楃涓插拰浜ら泦涓*/ char* s[2]={s1,s2};/*鐢ㄤ竴涓暟缁剆鏉ョ鐞唖1鍜宻2浠ヤ究鍦ㄤ笅闈㈢敤for寰幆澶勭悊*/ for(i=0; i<2; i++){/*渚濇杈撳叆涓や釜瀛楃涓*///杩欓噷浣跨敤do,while寰幆锛
  • 鐢╟璇█缂栧啓绋嬪簭,浠庨敭鐩杈撳叆涓や釜瀛楃鍒嗗埆瀛樻斁鍦ㄥ彉閲弜鍜寉涓,瑕佹眰閫氳繃绋 ...
    绛旓細include <stdio.h> void swap(int *x ,int *y){int t;t=*x;x=*y;y=t;} main(){ int a,b;a=50; b=60;swap(&a,&b);printf("%d# %d#\n",a,b);} 鐢╯wap鍑芥暟鏉ヤ氦鎹傝繖閲宎=50锛宐=60 浜ゆ崲鍚巃=60锛宐=50锛屽笇鏈涘浣犳湁甯姪銆
  • 缂栦竴绋嬪簭,灏涓や釜瀛楃涓杩炴帴璧锋潵,缁撴灉鍙栦唬绗涓涓瀛楃涓层傛眰绋嬪簭瑙g瓟
    绛旓細scanf("%s%s",s1,s2); //杈撳叆涓や釜瀛楃涓while(s1[i]) //鐩殑鏄i鎸囧悜 绗竴涓瓧绗︿覆鐨勬渶鍚庝綅缃 '\0'鎵鍦ㄤ綅缃甶++;while(s2[j]) //姝ゅ惊鐜氨鏄皢绗浜屽瓧绗︿覆鍐呭鍔犲埌绗竴瀛楃涓叉渶鍚 鐩村埌s2 '\0's1[i++]=s2[j++];s1[i]='\0'; //杩炴帴缁撴潫鍚 鍦ㄦ渶鍚庡姞缁撴潫绗rintf("The result is:%s\n...
  • ...瀛楃涓插ぇ灏 缂栧啓涓绠鍗曠殑绋嬪簭,鑳杈撳叆涓や釜瀛楃涓鍚,鍒ゆ柇浠栦滑鐨勯暱搴...
    绛旓細printf("璇杈撳叆绗簩涓瓧绗︿覆锛屼互鍥炶溅缁撴潫锛");scanf("%s",&c2);for(i=0;;i++){ if(c1[i]=='\0'){ n1=i;break;} } for(i=0;;i++){ if(c2[i]=='\0'){ n2=i;break;} } printf("绗竴涓瓧绗︿覆闀垮害涓%d\n绗簩涓瓧绗︿覆闀垮害涓%d\n",n1,n2);if(n1>=n2)printf("杈撳嚭...
  • C璇█缂栫▼棰樼洰?
    绛旓細涓嬮潰鏄竴涓彲浠ュ埄鐢ㄦ寚閽堝皢涓や釜瀛楃涓茶繛鎺ヨ捣鏉ョ殑 C 璇█绋嬪簭銆傝绋嬪簭瀹氫箟浜嗕竴涓瓙鍑芥暟 `StrCat`锛岀敤浜庡皢涓や釜瀛楃涓茶繛鎺ヨ捣鏉ワ紝骞惰繑鍥炶繛鎺ュ悗鐨勭粨鏋溿備富鍑芥暟涓紝鎴戜滑鍏堜粠鏍囧噯杈撳叆璇诲叆涓や釜瀛楃涓锛岀劧鍚庢牴鎹畠浠殑闀垮害璋冪敤 `StrCat` 鍑芥暟锛屽皢瀹冧滑杩炴帴璧锋潵骞惰緭鍑虹粨鏋溿俙``c include <stdio.h> include <...
  • c璇█濡備綍鐢╣etchar鍒嗗埆杈撳叆涓や釜瀛楃
    绛旓細include<stdio.h> void main(){ char a,b;printf("澶у濂斤紝鎴戝彨鏉庢槑锛乗n");printf("鎴戝鍚嶇殑绗竴涓瓧绗︽槸锛");a=getchar();getchar();printf("");printf("鎴戝鍚嶇殑绗簩涓瓧绗鏄細");b=getchar();getchar();printf("\n浣杈撳叆鐨涓や釜瀛楃鍒嗗埆鏄細");putchar(a);printf("銆");put...
  • 扩展阅读:学编程一年大概多少钱 ... 编程必背100个代码 ... 初学编程必背50个 ... c十十编程要学多久 ... 吓人的编程代码 ... c++入门程序代码 ... c++编程适合几岁学 ... c++简单程序实例 ... c++编程爱心代码 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网