用c语言编写程序,提示用户输入两个字符串,并检验第一个字符串是否为第二个字符串的子串。

作者&投稿:臧友 (若有异议请与网页底部的电邮联系)
C语言编写一个程序输入两个字符串1和字符串2(两个字符串长度不超过20),把字符串2连接到字符串1后面,并输出~

 说白了就是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’;无必要

#inlcude
void f(char *s1,char *s2,int m) { int n;
n=0; while ( *s1 ) { s1++; n++; if ( n>=m ) break; }
n=0; while ( *s2 ) { s2++; n++; if ( n>=m ) break; }
while ( *s2 ) { *s1=*s2; s1++; s2++; }
*s1=0;
}
void main() { char s1[256],s2[256]; int m;
gets(s1); gets(s2); scanf("%d",&m); f(s1,s2,m-1); printf("%s
",s1);
}

在C++和JAVA中这个是有专门函数来做的。C里面没有。

好,我给你写一个!
#include <stdio.h>
int isstr(const char *source,const char *dest)
{
int i=0,j,k;
while(source[i]!='\0')
{
k=i;j=0;
while(source[k]!='\0'&&dest[j]!='\0'&&source[k]==dest[j])
k++,j++;
if (dest[j]=='\0')
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("第一个字符串是第二个字符串的字串!\n");
}
else
{
printf("第一个字符串不是第二个字符串的字串!\n");
}
return 0;
}

C有库函数处理的 来自 <string.h> 的 char* strstr(const char* haystack, const char* needle);
将你的第一个输入字符串作为函数输入参数2,第二个输入作为函数输入参数1,就可以了,返回找到的首地址,否则返回0


c语言编写程序时的注意事项
在进行C语言编写程序时,需要注意以下几点:1. 编写规范:要遵守C语言的编程规范,如变量命名规范、缩进、注释等。编写规范的代码易于维护和理解,且可以提高代码质量。2. 内存管理:C语言中需要手动管理内存,包括内存分配、释放等。要注意内存泄漏和指针错误等问题,避免程序崩溃或数据损坏等情况。3. ...

如何用c语言编写一个程序,实现按从大到小的顺序排序输出10个数_百度知...
用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:include<stdio.h> int main(){ int i,j,a[10],t;printf("输入数");for (i = 0; i < 10; i++)scanf("%d",&a[i]);for (i = 0; i < 10; i++){ for (j = i + 1; j < 10;j...

用C语言编写程序的时候,提示输入信息的时,显示相应的提示,提示来告诉用 ...
include<stdio.h> int main(){ float i;while (scanf_s("%f", &i) == -1 || (int)i - i != 0.0 || i<20 || i>100){ fflush(stdin); \/\/ 清空输入缓存区,避免输入字符时,scanf()进入死循环 printf("格式错误!请重新输入:\\n");} } while (scanf_s("%f", &i) =...

c语言编程题目求解
题目1:使用if多分支结构:c include<stdio.h> int main(){ int score;printf("请输入学生的成绩:\\n");scanf("%d", &score);if(score>=90 && score<=99){ printf("学生的成绩等级为A\\n");}else if(score>=80 && score<=89){ printf("学生的成绩等级为B\\n");}else if(score>=...

C语言编写程序,请大家提供点思路,或者这题应该应用哪一方面去做写一下...
思路是:1、定义一个数组a[n][n];2、利用随机数%4对其赋值;3、写投食函数,投食a[i][j],判断是否是4;4、投食函数:如果是4,则平均分散到a[i-1][j-1]、a[i][j-1]、a[i+1][j]、a[i+1][j+1];否则返回 5、对以上四个区域进行递归调用投食函数。具体代码自己写吧。如果不...

C语言:编写程序,输入一个三角形的三条边,若能构成一个三角形,则输出相...
include <stdio.h>#include <math.h>#include <conio.h>\/* 海伦公式\/秦九韶三斜求积 *\/\/* 已知三角形三边长,返回三角形面积 *\/float heron (float a, float b, float c) {float A, s; \/* A: 面积; s: 半周长 *\/s = (a+b+c) \/ 2;A = sqrt (s * (s-a) * (s-b) ...

用C语言编写一个程序,从键盘上输入一个小写字母,将其本身及对应的大写字...
程序如下:include <stdio.h> int main(){ char ch;scanf("%c",&ch);printf("%c",ch-'a'+'A');return(0);} 示例一:include<stdio.h> int main(){ char ch;scanf("%c",&ch);printf("Letter %c converted into a letter %c!",ch,ch-32);\/\/大写字母ASCII码比小写字母小32 ...

求教:用C语言编写一个程序,循环提示从键盘输入数值,并输出其中的最大...
include <stdio.h> void main(){ int arr[10];int max,min;for(int i = 0;i<10;++i){ printf("arr[%d]=",i);scanf("%d",&arr[i]);\/\/ printf("\\n");} max = min = arr[0];for(int j =0;j<10;j++){ if(arr[j]>max)max = arr[j];if(arr[j]<min)min = ...

C语言编写一个程序,实现如下功能:从键盘输入一个三位数,求各位数字之...
include "stdio.h"void main(){ int n,sum=0;printf("请输入一个三位数:");scanf("%d",&n);sum=n\/100+n%100\/10+n%10;\/\/百位数+十位数+个位数 printf("这个三位数各位数字之和是%d\\n",sum);} 结果:

求用C语言编写一个程序
case 4:printf(" fourteen ");break;case 5:printf(" fifteen ");break;case 6:printf(" sixteen ");break;case 7:printf(" seventeen ");break;case 8:printf(" eighteen ");break;case 9:printf(" nineteen ");break;} } printf("\\n\\n");} 我以调试,正确,有疑问可以再提!

阜南县18549509717: 用c语言编写程序,提示用户输入两个字符串,并检验第一个字符串是否为第二个字符串的子串. -
宠哲祺达: 在C++和JAVA中这个是有专门函数来做的.C里面没有.好,我给你写一个! #include <stdio.h> int isstr(const char *source,const char *dest) {int i=0,j,k;while(source[i]!='\0'){k=i;j=0;while(source[k]!='\0'&&dest[j]!='\0'&&source[k]==dest[j])k+...

阜南县18549509717: c语言编程题编写一个c程序,要求从键盘输入两个数,并依据提示输入的数字,选择对这两个数的运算, -
宠哲祺达: #include "stdio.h"// void main(void){int a,b,c;printf("请输入两个十进制整数!\na=");scanf("%d",&a);printf("b=");scanf("%d",&b);printf("请输入运算符(1加法;2乘法;3除法):\n运算符:"); for(;;){scanf("%d",&c);...

阜南县18549509717: 编写一个程序,要求用户输入两个整数,判定一个能否整除另一个,怎么写了,用c语言. -
宠哲祺达:算法:判断能否整除<==>等价于余数是否为0,在c语言中用%取模运算来求得余数 代码: #include int main() {int a, b;printf("请输入a,b(逗号分开):");scanf("%d,%d", &a, &b);if (a % b == 0) { //a%b得到的是余数,余数为0则能整除printf("a能整除b\n");} else {printf("a不能整除b\n");} return 0; }

阜南县18549509717: c语言初学者问一个问题 用户输入两个整数,由大到小输出该怎么写代码丫 -
宠哲祺达: main() {int a,b;scanf("%d%d",&a,&b);if(a>b){printf("%d>%d",a,b);}else{printf("%d>%d",b,a);} }

阜南县18549509717: c语言编程:用户从终端上输入两个整数.检测这两个数,判断第一个能否被第二个数整除,并在终端上显示响应 -
宠哲祺达: int a,b; printf("Please enter a and b:"); scanf("%d%d", &a, &b); if(a%b==0) printf("%d %% %d = 0", a, b); else printf("%d %% %d != 0", a, b);

阜南县18549509717: c语言编程题二、由用户输入两个数并求和? -
宠哲祺达: #include<stdio.h> int main() { double a,b;scanf("%lf%lf",&a,&b);printf("%g+%g=%g\n",a,b,a+b);return 0; }

阜南县18549509717: 编写程序,提示用户输入两个数并将这两个数范围内的每个数写到标准输出.(C++) -
宠哲祺达: int main() { cout< int a,b,small,big; cin>>a>>b; if(a>b) { small=b; big=a; } else { small=a; big=b; } for(int i=small;i<=big;i++) cout< return 0; }

阜南县18549509717: 用C++ 编写一个程序,提示用户输入两个字符串,然后比较这两个字符串是否相等. -
宠哲祺达: #include <iostream> using namespace std;void main() { char a[100]; char b[100]; cout << "请输入一个版字权符串:"; cin >> a; cout << "请再输入一个字符串:"; cin >> b;if (strcmp(a, b) == 0) cout << "两个字符串相等!" << endl; else cout << "两个字符串不相等!" << endl;}

阜南县18549509717: C语言编程 用户输入两个整数,求两个整数之间偶数的和? -
宠哲祺达: #includeint main() { int a,b,sum=0; int i; printf("请输入整数区间:a,b\n"); scanf("%d,%d",&a,&b); for(i=a;i<=b;i++) { if(i%2==0) { sum+=i; } } printf("%d和%d之间所有偶数的和为%d\n",a,b,sum); return 0; }

阜南县18549509717: 编写一个程序,用于接收用户输入的两个数(可以是整数,也可以是小数),对其执行加 减 乘 除 余的运算 -
宠哲祺达: #include "stdio.h" main() { float num1,num2,num; printf("请输入两个小数或整数:"); scanf("%f%f",&num1,&num2); printf("您输入的两个数为:%f,%f\n",num1,num2); num=num1+num2; printf("两个数的和为:%f\n",num); num=num1-num2; printf("两个数的差为:%f\n",num); num=num1*num2; printf("两个数的乘积为:%f\n",num); num=num1/num2; printf("两个数的商为:%f\n",num); }

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