當前位置:首頁 » 編程語言 » 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;//返回最大元素地址;
}