當前位置:首頁 » 編程語言 » c語言怎樣表達字元串等於10位
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎樣表達字元串等於10位

發布時間: 2023-01-21 09:30:14

c語言 輸入一個長度為10的字元串,

#include<stdio.h>
intmain()
{
charpsw[11];
inti;
printf("輸入10個字元:");
scanf("%s",psw);
printf("輸出: ");
for(i=0;i<10;i++)
{
if((psw[i]>='a'&&psw[i]<='z')||(psw[i]>='A'&&psw[i]<='Z'))
{
if(i==2)
psw[i]='E';
elseif(i==7)
psw[i]='e';
else
psw[i]=psw[i]<=90?psw[i]+32:psw[i]-32;//大寫變小寫,小寫變大寫
}
}
psw[10]=0;
printf("%s ",psw);
return0;
}

② C語言如何將一個數字組成的字元串轉變成十進制數

辦法很多,提供三種供參考。

一、直接使用庫函數atoi將數字字元串轉換成十進制整數。代碼如下:

#include"stdio.h"
#include"stdlib.h"//調用庫函數atoi要包含這個文件
intmain(intargc,char*argv[]){
chara[]="478167831";
printf("%d ",atoi(a));//直接調用atoi將a轉換為十進制整數
return0;
}

二、用庫函數sscanf直接將數組中的數字字元串讀入十進制整型變數。代碼如下:

#include"stdio.h"
intmain(intargc,char*argv[]){
chara[]="478167831";
intx;
sscanf(a,"%d",&x);//調用sscanf,讀入時自動轉換為int型並由%d控制以十進制賦給變數x
printf("%d ",x);//輸出
return0;
}

三、自行編寫轉換代碼:

#include"stdio.h"
intmain(intargc,char*argv[]){
chara[]="478167831";
intx,i;
for(x=i=0;a[i];(x*=10)+=a[i++]-'0');//字元與數字的關系是"字元值-'0'==同名數字"
printf("%d ",x);//輸出
return0;
}

上述三代碼的輸出結果如下圖:

③ c語言字元串長度有哪些

這個字元串長度為10個字元。

可以用strlen("ab'1'\12803")來求這個字元串的長度。

也可以用sizeof("ab'1'\12803")來求,但是這個求出的結果是多了一個字元串結束符。

可以試著輸出這個字元串看看是不是10個字元。

strlen()函數判斷的字元串長度是以為結尾作為標志的。

當char * m=new char[TOKEN_LENGTH]後,雖然為指針分配了地址,但是其指向的內容未被初始化,所以m指向的內容是未知的,可能在第24個字元的位置發現了所以strlen()顯示長度為24。

數據類型

字元串數據類型是建模在形式字元串的想法上的數據類型。字元串是幾乎在所有編程語言中可以實現的非常重要和有用的數據類型。在某些語言中它們可作為基本類型獲得,在另一些語言中做為復合類型獲得。多數高級語言的語法允許通常用某種方式引用起來的字元串來表示字元串數據類型的實例;這種元字元串叫做「文本」或「字元串文本」。

以上內容參考:網路-字元串

④ c語言中,將字元轉換為十進制的程序

字元轉為10進制 用sscanf或者用atoi均可

以字元串中, 本身為10進制字元串為例

用sscanf程序如下:

#include<stdio.h>
intmain()
{
chars[20];
inti;
scanf("%s",s);
sscanf(s,"%d",&i);
printf("%d ",i);
return0;
}

⑤ C語言 十六進制字元串轉十進制

#include<stdio.h>
#include<string.h>
voidmain()
{
inti=0,j=0,result=0,index=0,cindex=0;
chara[100],b[100],c[4];
gets(a);//輸入數據

for(i=0;i<strlen(a);i++)
{
/*將16進制轉換成10進制*/
if(a[i]>='a'&&a[i]<='z')
result=result*16+a[i]-'a'+10;
elseif(a[i]>='A'&&a[i]<='Z')
result=result*16+a[i]-'A'+10;
else
result=result*16+a[i]-'0';
/*每兩位處理一次*/
if(i%2!=0)
{
cindex=0;
do
{
c[cindex++]=result%10+'0';//倒序存放在c中
result/=10;
}while(result!=0);
for(j=cindex-1;j>=0;j--)//翻轉後存放在b中
b[index++]=c[j];
}
}
b[index]='';//加上串結束符
puts(b);//輸出
}

測試結果:

⑥ 關於c語言編程,16進製表示的字元串轉成10進制的

這個就是一個16進制數轉10進制的程序
先以字元串方式逐字元讀入16進制數
然後對每個讀入的字元依次做判斷
t=s[i]-'0' //臨時變數t為當前判斷的字元串的ASCII碼值減去字元'0'的ASCII碼值,這一步的作用是將字元型轉換為整型以供計算
if(t<=9) k=k*16+s[i]-'0' //如果t≤9,說明原字元為'0'~'9',轉換後直接得到對應數字0~9,因此直接將這個數字轉換為十進制即可:k=k*16+s[i]-'0'即將當前位轉換為十進制
else k=k*16+s[i]-'A'+10 //如果t>9,說明原字元為'A'~'F',轉換後不能得到對應數字,必須通過s[i]-'A'+10把字元'A'~'F'轉換為數字10~15,再逐位轉換為十進制。

⑦ C語言,如何提高結果的輸出位數,現最高為10位

你這個程序的作用是求一個數字的階乘,但是能夠計算的數字很有限,13!=6227020800就已經超過了long所能夠表示的范圍,所以不能用整形數來表示,只能用字元串或者數組來表示。下面就介紹一個用數組表示大數階乘的問題的程序。
/*下面這個代碼把40以內的數字的階乘都列印出來,也可修改程序列印固定數字的階乘,也可以列印更多數字的階乘,最大可列印10000以內數字的階乘。參考方法*/
#include <stdio.h>
#define N 10000
int main()
{
static long int r[N]={1}; /*數組r裡面每個元素存放階乘的4位數*/
int i,j;
int k=0,l=0; /*k表示低位與下一個數字相乘的進位,l表示r中多少個元素參與了乘法*/
for(i=1;i<=40;i++) /*這個循環是用來列印40以內的階乘*/
{
for(j=0;j<=l;j++)
{
r[j]=r[j]*i+k; /*輸入r每一個元素都與i相乘,然後加上低位相乘的進位,參考乘法法則*/
k=r[j]/10000; /*每個r元素之保存4位數字,得到進位k*/
r[j]=r[j]%10000; /*除以10000的余數就是乘後這個元素的四位數*/
}
if(k) /*假如最高位相乘後還有進位,r中相乘的元素就多一個,多的一個元素就是進位k*/
{
l++;
r[j]=k;
k=0;
}
j=l;
/*列印i的階乘*/
printf("%d!=%d",i,r[j--]);
for(;j>=0;j--)
{
printf("%04d",r[j]);
}
printf("\n");
}
return 0;
}

部分結果如下:
1!=1
2!=2
3!=6
4!=24
5!=120
6!=720
7!=5040
8!=40320
9!=362880
10!=3628800
11!=39916800
12!=479001600
13!=6227020800
14!=87178291200
15!=1307674368000
16!=20922789888000
17!=355687428096000
18!=6402373705728000
19!=121645100408832000
20!=2432902008176640000
21!=51090942171709440000
22!=1124000727777607680000
................

⑧ C語言用1個10進制數表示字元串,並輸出該值怎麼做

要把一個十進制形式的整數數字字元串,轉換為一個十進制整數,可以用以下的辦法:
char s[]="12345678";
int i,n=0;
for(i=0;s[i];i++)
n=n*10+s[i]-'0';
printf("%d",n);
運行這段代碼後可以輸出:
12345678