当前位置:首页 » 编程语言 » 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