鍵盤輸入字元c語言
❶ 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;
}
❷ C語言編程:從鍵盤上輸入兩個字元串,判斷兩個字元串是否相等。
主要的錯誤是因為scanf (「%s,%s」,&str1,&str2);中%s,%s之間的逗號造成的,加上逗號之後會導致第二個輸入的字元串出現問題。
可以將scanf (「%s,%s」,&str1,&str2);改成scanf (「%s%s」,&str1,&str2);
if (str1[j] == 『 』 || str2[j] == 『 』)應該改為if (str1[j] ==『 』 && str2[j] == 『 』)這樣可以有效的解決你的問題。
正確代碼供參考:
#include <stdio.h>
int main() {
char str1[10],str2[10];
int j = 0,flag = 0;
printf(「 」);
scanf(「%s%s」,&str1,&str2);
while (str1[j] == str2[j]) {
j++;
if (str1[j] == 『 』 && str2[j] ==『 』) {
flag = 1;
break;
}
}
if (flag==1) {
printf(「the two string are equal.」);
} else {
printf(「the two string are not equal.」);
}
}
(2)鍵盤輸入字元c語言擴展閱讀:
scanf函數返回成功讀入的數據項數,讀入數據時遇到了「文件結束」則返回EOF。
空白字元會使scanf函數在讀操作中略去輸入中的一個或多個空白字元。
一個非空白字元會使scanf()函數在讀入時剔除掉與這個非空白字元相同的字元。
scanf使用注意:
在高版本的 Visual Studio 編譯器中,scanf 被認為是不安全的,被棄用,應當使用scanf_s代替 scanf。
對於字元串數組或字元串指針變數,由於數組名可以轉換為數組和指針變數名本身就是地址,因此使用scanf()函數時,不需要在它們前面加上「&」操作符。
可以在格式化字元串中的「%」各格式化規定符之間加入一個整數,表示任何讀操作中的最大位數。
scanf函數中沒有類似printf的精度控制。
scanf中要求給出變數地址,如給出變數名則會出錯。
在輸入多個數值數據時,若格式控制串中沒有非格式字元作輸入數據之間的間隔,則可用空格,TAB或回車作間隔。
C編譯在碰到空格,TAB,回車或非法數據(如對「%d」輸入「12A」時,A即為非法數據)時即認為該數據結束。
在輸入字元數據(%c)時,若格式控制串中無非格式字元,則認為所有輸入的字元均為有效字元。
參考資料來源:網路-scanf
❸ c語言,從鍵盤中輸入一個字元,如果是大寫字母,轉換成小寫字母輸出,如果是其他字元則不變換
你所寫的代碼是正確的,想要查看,請用這個:
#include <stdio.h>
int main()
{
char ch;
scanf("%c",&ch);
if(ch>='A'&&ch<='Z')
{
ch=ch+32;
printf("%c",ch);
}else{
printf("%c",ch);
}
getchar();
getchar();
return 0;
}
拓展資料
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
❹ 如何用C語言直接讀入鍵盤字元
有方法,可以參考:
自己寫
字元檢測
函數,限定以想要輸入的字元范圍,然後依次匹配輸入字元項,合適,讀取;非法,丟棄,繼續讀取
❺ 在C語言中如何實現用鍵盤輸入一個字元串,並列印出來
在C語言中實現用鍵盤輸入一個字元串,並列印出來的解決方法如下:
1、首先定義一個字元串數組,如你可以給字元串100個數組空間。如圖括弧內數字即為你定義的數組大小。
(5)鍵盤輸入字元c語言擴展閱讀:
字元數組的輸出:
(1)用putchar()或printf()的『%c』格式符對數組進行字元賦值。例如,對於數組a[10]:用putchar()賦值:
for(i=0;i<10;i++)
a[i]=putchar();
用printf()賦值:
for(i=0;i<10;i++)
printf("%c",a[i]);
輸出結果為:
c program[2]
(2)用printf()的'%s'格式對數組賦值。還是對於數組a[10];
printf("%s",a);
輸出結果為:
c program
參考資料來源:
網路-char
網路-字元數組
❻ 用C語言實現從鍵盤上輸入若干字元,直到輸入』#」結束。統計英文字母、數字、空格
C語言實現如下:
#include<stdio.h>
voidmain()
{
chara;
intletter=0,number=0,space=0;
a=getchar();
while(a!='#')//判斷所輸入的字元是否為「#」,是則結束循環。
{
if((a>='A')&&(a<='Z')||(a>='a')&&(a<='z'))letter++;
elseif((a>='0')&&(a<='9'))number++;
elseif(a=='')space++;
a=getchar();
}
printf("英文字母:%d 數字:%d 空格:%d ",letter,number,space);
//分別輸出英文字母、數字、空格的個數。
}
樣例輸入:
AB1c 2 dE34f g 5 #
樣例輸出:
英文字元:7
數字:5
空格:5
❼ C語言從鍵盤上輸入一串字元 (不超過 80 個字元 ),直 到 回 車 結束。輸出其中數字字元的個數
可以參考下面的示例:
#include <stdio.h>
int main()
{
int i=0, space=0, num=0, n=0, ch=0;
char s[20];
printf("請輸入一串字元 ");
gets(s);
while(s[i] != '\0')
{
if(s[i]==' ')
space++;
else if(s[i]<='9' && s[i]>='0')
num++;
else if(s[i]<='z' && s[i]>='a' || s[i]<='Z' && s[i]>='A')
ch++;
else
n++;
i++;
}
printf("剛才輸入的字元中英文字元個數為 %d\n", ch);
printf("剛才輸入的字元中空格個數為 %d\n", space);
printf("剛才輸入的字元中數字個數為 %d\n", num);
printf("剛才輸入的字元中其他個數為 %d\n", n);
return 0;
}
❽ c語言程序設計答案 編程實現,從鍵盤輸入一個字元,則輸出其後的字元,如輸入『A』則輸出『B』
程序源碼如下:
#define _CRT_SECURE_NO_WARNINGS//VS環境下需要,VC不需要
#include<stdio.h>
void main()
{
char a;//定義一個字元
printf("請輸入一個字元:");//文字提示
scanf("%c", &a);//輸入一個字元
printf("其後續字元為:");//文字提示
printf("%c
", a + 1);//輸出其之後的字元
}
程序運行結果如下:
(8)鍵盤輸入字元c語言擴展閱讀:
在計算機中,所有的數據在存儲和運算時都要使用二進制數表示(因為計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)以及0、1等數字還有一些常用的符號(例如*、#、@等)在計算機中存儲時也要使用二進制數來表示。
而具體用哪些二進制數字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通信而不造成混亂,那麼大家就必須使用相同的編碼規則,於是美國有關的標准化組織就出台了ASCII編碼,統一規定了上述常用符號用哪些二進制數來表示。
ASCII 碼使用指定的7 位或8 位二進制數組合來表示128 或256 種可能的字元。標准ASCII 碼也叫基礎ASCII碼,使用7 位二進制數(剩下的1位二進制為0)來表示所有的大寫和小寫字母,數字0 到9、標點符號,以及在美式英語中使用的特殊控制字元。其中:
1、0~31及127(共33個)是控制字元或通信專用字元(其餘為可顯示字元),如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(響鈴)等;
通信專用字元:SOH(文頭)、EOT(文尾)、ACK(確認)等;ASCII值為8、9、10 和13 分別轉換為退格、製表、換行和回車字元。它們並沒有特定的圖形顯示,但會依不同的應用程序,而對文本顯示有不同的影響 。
2、32~126(共95個)是字元(32是空格),其中48~57為0到9十個阿拉伯數字。
3、65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其餘為一些標點符號、運算符號等。
同時還要注意,在標准ASCII中,其最高位(b7)用作奇偶校驗位。所謂奇偶校驗,是指在代碼傳送過程中用來檢驗是否出現錯誤的一種方法,一般分奇校驗和偶校驗兩種。
奇校驗規定:正確的代碼一個位元組中1的個數必須是奇數,若非奇數,則在最高位b7添1;
偶校驗規定:正確的代碼一個位元組中1的個數必須是偶數,若非偶數,則在最高位b7添1。
後128個稱為擴展ASCII碼。許多基於x86的系統都支持使用擴展(或「高」)ASCII。擴展ASCII 碼允許將每個字元的第8 位用於確定附加的128 個特殊符號字元、外來語字母和圖形符號
常見ASCII碼的大小規則:0~9<A~Z<a~z。
1)數字比字母要小。如 「7」<「F」;
2)數字0比數字9要小,並按0到9順序遞增。如 「3」<「8」 ;
3)字母A比字母Z要小,並按A到Z順序遞增。如「A」<「Z」 ;
4)同個字母的大寫字母比小寫字母要小32。如「A」<「a」 。
幾個常見字母的ASCII碼大小: 「A」為65;「a」為97;「0」為 48 。
參考資料來源:網路-ASCII
❾ C語言從鍵盤輸入一個字元串,然後輸出一個新字元串,如原串為abcd,則新串為a b c d
#include<stdio.h>
void fun(char *s)
{
char t[30];
int k=0,i=0,j=0;
while(s[i])
t[k++]=s[i++];
i=0;
while(i<2*k-1)
{
if(i%2==0)
s[i]=t[j++];
else
s[i]='*';//這里的*改為空格;
i++;//用*(星號)為了看著更直觀
}
s[i]='