当前位置:首页 » 编程语言 » c语言任意输入字符串a和b
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言任意输入字符串a和b

发布时间: 2022-11-19 10:38:12

A. 【c语言】输入两个字符串a和b,将b串中的最大字符插入到a串中最小字符后面(可以告诉我为什么错了吗)

#include<stdio.h>
#include<string.h>
intmain()
{chara[50],b[50];
inti=0,j=0,min=0,max=0,x,y;
gets(a);
gets(b);
x=strlen(a);
y=strlen(b);
for(i=0;i<x;i++)
{if(a[i]<a[min])
min=i;
}
for(j=0;j<y;j++)
{if(b[j]>b[max])
max=j;
}
for(i=x;i>min;i--)
{a[i+1]=a[i];
}
a[i+1]=b[max];
puts(a);
}

B. c语言问题,从键盘输入两个两个字符串a和b,如果b的长度小于10,则将b链接到a后面并输出a否则输出b

给题主一个合并两个字符串的代码吧~题主可按照具体要求补充逻辑

#include<stdio.h>

#defineLEN256

voidmergeString(char*str1,char*str2,char*merge){
while(*merge++=*str1++);//复制str1并将指针移动到字符串的末尾的下一个位置
merge--;//退到字符串的末尾
while(*merge++=*str2++);//从末尾()的位置开始将p2拷贝进来
}

intmain(void){
charmerge[LEN];
char*str1="Hello_";
char*str2="world!";

printf("初始2个字符串分别为: ");
printf("%s ",str1);
printf("%s ",str2);
printf(" ");
printf("====================================================== ");

printf("合并后的字符串为: ");
mergeString(str1,str2,merge);
printf("%s ",merge);
printf(" ");
}

运行结果

C. C语言题目救急任意输入字符串a和b,在字符串a中查找字符串b第一次出现的位置

#include <stdio.h>
#include <string.h>
int main()
{
char a[255] = "";
char b[255] = "";
printf("请输入字符串a:");
scanf("%s", a);
printf("请输入字符串b:");
scanf("%s", b);
char* p = strstr(a, b);
if (p != NULL)
printf("%s第一次出现在%s的位置为:%d", b, a, p - a);
else
printf("%s不包含%s的子串", a, b);
return 0;
}

D. 用c语言做个程序,输入a或b或c或d或e,后显示其数据和字符,且能区分大小写。

#include
int
main()
{
char
a;
printf("输入一个字符(A-E

a-e):");
scanf("%c",&a);
if
(
a>='a'&&a<='e'||a>='A'&&a<='E')
{
if(a>='a'&&a<='e')
printf("你输入的是小写——'%c';ASCII码是——%d\n",a,a);
else
printf("你输入的是大写——'%c';ASCII码是——%d\n",a,a);}
else
{
printf("输入有误,不是
A-E

a-e
!");
}
}

E. 用c语言编写一个程序,从键盘上输入两个字符给字符变量a,b,并输出变量a,b的值。

程序代码如下:
#include <stdio.h> //编译预处理命令
int main(int argc, char *argv[]) //主函数,字符的声明
{
char a,b; //定义字符a,b

scanf("%c %c",&a,&b); //输入字符a,b

printf("%c %c\n",a,b);//打印字符a,b

return 0; //返回并且输出a,b
}
扩展知识:
Matlab变量的特点:不需事先声明,也不需指定变量类型,Matlab自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型;在赋值过程中,如果变量已经存在,Matlab会用新值代替旧值,并以新的变量类型代替旧的变量类型。
变量的默认类型为double。

F. 从键盘输入字符串a和字符串b,并在a串中的最小元素(不含结束符)后面插入字符串b的C语言

#include<stdio.h>
#include<string.h>
#definesize100

voidinsert(char*s1,constchar*source);
intmain(intargc,char*argv[])//主函数
{
chars1[size]={0};
charsource[size]={0};

puts("enters1 s1:");
fgets(s1,size,stdin);//从键盘获取字符串s1

puts("entersource s2:");
fgets(source,size,stdin);//从键盘获取字符串s2
intlen_source=strlen(source);//删除S2最后的回车
if(source[len_source-1]==' ')
{
source[len_source-1]='';
}

insert(s1,source);
puts(s1);//打印新的s1
return0;
}


voidinsert(char*s1,constchar*source)
{
intlen=strlen(s1),i,flg;
charmin=s1[0];
for(i=0;i<len-1;i++)//求最小的元素
{
if(min>s1[i])
{
min=s1[i];
flg=i+1;
}
}
chartmp_str[size]={0};
strcpy(tmp_str,s1+flg);//先把最小元素之后的字符拷贝到临时数组
strcpy(s1+flg,source);//从最小元素的位置把s2拷贝到s1
strcpy(s1+strlen(s1),tmp_str);//最后把s1最开始最小元素之前的字符(包括pos)重新拷到s1
}

G. C语言:从键盘输入字符串A、B和整数n,将B插入到A的下标n处;n>A长度时插到A后,n<0时插到A前,咋写

代码文本:

#include "stdio.h"

int main(int argc,char *argv[]){

char A[201],B[101],t[101];

int i,j,k,n;

printf("Please enter the two strings and integers n... ");

scanf("%100s%100s%d",A,B,&n);

for(k=0;A[k];k++);//求A长度

n = n<0 ? 0 : n>=k ? k : n;//n越界调整

for(i=n,j=0;t[j++]=A[i++];);

for(i=n,j=0;A[i]=B[j];i++,j++);

for(j=0;A[i++]=t[j++];);

printf(" %s ",A);

return 0;

}

H. 用C语言:输入两个字符串a和b,连接ab和ba,输出ab和ba中较大的串。用strcat

思路:两个字符串的拼接可以使用strcat函数。
strcat函数原型: char *strcat(char *s1,char *s2);
需要引入头文件:#include <string.h>
功能:把s2所指字符串添加到s1结尾处并添加'\0'。
注意:s1必须有足够的空间来容纳s1和s2的字符串。
参考代码:
#include "stdio.h"
#include "string.h"
int main() {
char s1[200],s2[100];
gets(s1);
gets(s2);
strcat(s1,s2);
puts(s1);
return 0;
}
/*
运行结果:
asfds
123423
asfds123423
*/

I. 【C语言】输入两个字符串a和b,将b串中的最大字符插入到a串中最小字符后面(可以告诉我哪里出问题了吗)

#include<stdio.h>
#include<string.h>
intmain()
{
chara[101],b[100];
inti=0,j=0,min,max,x,y;
min=0;//min在下面(if(a[i]<a[min]))作为右值被调用,要先做初始化
max=0;//初始化
gets(a);
gets(b);
x=strlen(a);
y=strlen(b);
for(i=0;i<x;i++)
{
if(a[i]<a[min])
min=i;
}
for(j=0;j<y;j++)
{
if(b[j]>b[max])
max=j;
}

for(i=x;i>min;i--)//for循环注意其语句执行先后顺序,判断条件语句(i>min),
{//满足之后先执行for循环体语句(a[i]=a[i-1];),再执行i--。
a[i]=a[i-1];
}
if(min==x)
a[i]=b[max];//这里原程序直接把整数max赋给了a[i]
else
{
a[i+1]=b[max];
}
a[x+1]='';//在字符串最后添加字符串结束符
puts(a);
while(1);
}

根据你的思路,改好程序后帮你把根本上的错误注释上了

J. c语言从键盘输入两个字符串a和b,并在a串中的最大元素后边插入字符串b!有图 就程序

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

constchar*max(constchar*x);

intmain(void)
{
charstring1[1024]={0};//字符串1;
charstring2[1024]={0};//字符串2;

printf("Inputstring1:");
gets(string1);//输入串1;
printf("Inputstring2:");
gets(string2);//输入串2;

char*newstr=(char*)calloc(strlen(string1)+strlen(string2)+1,sizeof(char));//创建一个刚好容纳两个串的新串;

if(!newstr)//检查是否创建成功;
{
printf("内存不足,程序结束! ");
exit(1);
}

constchar*m=max(string1);//调用max函数取串1内最大元素的地址;
inti=0;

for(;&string1[i]!=m;++i)//串1最大元素之前的内容放入新串;
newstr[i]=string1[i];

newstr[i]=string1[i];//串1最大元素放入新串;
strcat(newstr,string2);//串2接入新串;
strcat(newstr,m+1);//串1最大元素之后的内容接入新串;
printf("Thenewstringis%s ",newstr);//输出新串;
free(newstr);//释放内存;
newstr=NULL;//放空指针;
return0;
}

constchar*max(constchar*x)//返回串中最大元素地址;
{
constchar*m=&x[0];//指向第一个元素;

for(inti=1;x[i]!='';++i)//循环到'';
if(x[i]>*m)//若比m当前指向的元素大,
m=&x[i];//让m指向该元素地址;

returnm;//返回最大元素地址;
}