c语言中字符串的长度是如何计算的?
可以将整数当做字符串(字符串长度不超过10)接收,然后反向输出字符数组元素即可。
字符串实际长度可以用strlen函数来计算。
方法程序如下:
#includestdio.h
#includestring.h
main()
{char a[10];int i,j;
scanf(“%s”,a);
j=strlen(a);
for(i=j-1;i=0;i–)
printf(“%c”,a[i]);
printf(“\n”);}
扩展资料:
C语言高效编程技巧:
一:以空间换时间
计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题
二:数学方法解决问题
数学是计算机之母,没有数学的依据和基础,就没有计算机发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。
三:使用位操作
实现高效的C语言编写的第三招—-使用位操作,减少除法和取模的运算。
在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效提高程序运行的效率。
参考资料来源:百度百科-C语言
c语言字符串运算
#includestdio.h
#includestdlib.h
int main()
{
int i,len,ok;
char str[1024]={‘\0’};
do
{
ok=1;
printf(“请输入一个字符串:\n”);
gets(str);
i=0;
while(‘\0’!=str[i])
{
if(!isalpha(str[i]))
{
ok=0;
break;
}
i++;
}
}while(!ok);
len=strlen(str);
printf(“字符串\”%s\”的长度是%d。\n”,str,len);
//printf(“字符串\”%s\”包含了以下元音字母:\n”,str);
printf(“字符串未进行元音字母循环加密(加密规则a-e-i-o-u-a)前是:\n%s。\n”,str);
i=0;
while(‘\0’!=str[i])
{
if(‘a’==str[i])
{
str[i]=’e’;
}
else if(‘e’==str[i])
{
str[i]=’i’;
}
else if(‘i’==str[i])
{
str[i]=’o’;
}
else if(‘o’==str[i])
{
str[i]=’u’;
}
else if(‘u’==str[i])
{
str[i]=’a’;
}
i++;
}
printf(“字符串进行元音字母循环加密(加密规则a-e-i-o-u-a)后是:\n%s。\n”,str);
system(“PAUSE”);
return EXIT_SUCCESS;
}
c语言计算字符数组的长度
1、在c语言中,可以通过库函数strlen来计算字符串的长度,也可以通过循环计数来求取字符串长度。
函数原型:unsigned
int
strlen(char
*str);
功
能:统计字符串str中字符的个数,不包含’\0′
返
回
值:返回字符个数
2、用strlen函数实现:
char str[20];
int len; // 保存数组的长度
scanf(“%s”, str);
len = strlen(str); // 计算字符数组str的长度
注:需将头文件#include
添加进源文件中。3、用循环来实现:
char str[20];
int len=0; // 保存数组的长度
scanf(“%s”, str);
while(str[len] != ‘\0’) // 未检测到结束字符
{
len++; // 统计字符数组str的长度
}
C语言 字符计数
EOF的ascall码值为-1
你输入的字符的ascall码都在0到255之间,不可能出现-1
因此用EOF来作为文件结束标志~EOF的全称也是End Of File
getchar()是一个函数,是输入字符的函数,顾名思义,呵呵
getchar()则你输入的都是字符,”w””q””1″”+”“-“”,”这些都是字符就连空格也是字符哦~
而++nc就是在使用nc之前先使他的值+1,那么就得到了输入一个字符,nc就+1的目的
程序功能就是计算你输入的字符个数
例如输入:I love C programme
就会输出:18
C语言字符串运算!
#include iostream
#include string
#include algorithm
using namespace std;
void k_add(string a, string b, int k)
{
//将长的字符串放在前面
if (a.size() b.size())
{
string temp = a;
a = b;
b = temp;
}
//对源字符串进行翻转
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
bool carry = false; //进位
//字符串相加
size_t i = 0;
for (; i b.size(); i++)
{
if (i b.size())
{
a[i] += b[i] – ‘0’;
if (carry) a[i] += 1;
carry = false;
if (a[i] = k + ‘0’)
{
a[i] -= k;
carry = true;
}
}
}
for (; i a.size(); i++)
{
if (carry) a[i] += 1;
carry = false;
if (a[i] = k + ‘0’)
{
a[i] -= k;
carry = true;
}
}
if (carry)
{
a.push_back(‘1’);
}
//输出
bool begin = false;
for (int j = a.size() – 1; j = 0 ; j–)
{
if (a[j] ‘0’)
{
begin = true;
}
if (begin)
{
cout a[j];
}
}
cout endl;
}
简单模拟即可