当前位置:首页 » 编程语言 » c语言字符运算

c语言字符运算

发布时间: 2022-08-18 04:41:22

c语言字符串计算

这就要从字符型数据在内存中的存储方式来解释了。在C语言中,实际上字符型数据在内存中是以二进制形式存放的,并不是真正的把一个字符存进内存里。在对字符型数据进行相加减运算的时候,系统会首先会将char型数据以隐形的方式转化成int型数据再进行相加减运算的。因此,由字符型数据在内存的存储方式来看,字符型数据是可以进行数值运算的,对字符型数据做数字运算实际上就是对字符本身对应的ASSIC码进行相应的数值运算。

⑵ C语言字符 运算

我觉得你那句while根本就不可能对~你应该用if语句来判断,如果按照你用while语句写的话,那就会一直循环,直到a的值小于'A',你应该用if语句,然后如果是小写的话,让它减去32,如果是大写,就不用动了:
比如你这么写:
char
a;
scanf("%c",&c);/*由用户输入a*/
if(a>'a'&&a<'z')
a=a-32;
printf("%c",a);
上面这个是主要的代码,楼主再完善完善,不懂再来问

⑶ c语言 字符运算

看这句:
for(i=0;(i<n-j+1)&&(str[i]!='\0');i++)
if(str[i]>str[i+1])//此时如果str[i+1]为'\0',那么就会下面的语句
{temp=str[i];str[i]=str[i+1];str[i+1]=temp;}
}那空格就是由于输出'\0'的缘故。把for语句改成这个就可以了:for(i=0;(i<n-j+1)&&(str[i+1]!='\0');i++)

⑷ c语言字符串运算

#include<stdio.h>
#include<stdlib.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语言中的字符型的运算。

#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;

}

简单模拟即可

10进制测试

⑹ c语言 字符加减运算

选A吧,首先x-'a'转为数字为5,5+1=6,'A'+6=G,int型与字符型相加,会把int型自动转为字符型。

⑺ c语言字符串为什么可以运算

‘A’也是一个数值,具体是多少你可以查看
ASCII表
,当两个不同类型的数值运算时,低位的数值会转换为高位的数值再进行相加,如char是8位的,int是16位的,所以’A‘将先转换为int型,再与5相加,然后得到F所对应的
ASCII编码

⑻ C语言 字符串 按位与

// 编写的以高位相与的函数:

char*str;
voidstringv(char*str1,char*str2)
{
inti;
for(i=0;str1[i]!=''&&str[i]!='';i++)
str[i]=(str1[i]-0x30)&(str2[i]-0x30)+0x30;
str[i]='';
}
热点内容
如何测试电视的配置 发布:2025-01-19 21:00:48 浏览:609
sql日期格式转换字符 发布:2025-01-19 20:58:45 浏览:878
路由器管理密码是什么忘了怎么办 发布:2025-01-19 20:34:35 浏览:427
java方法定义 发布:2025-01-19 20:20:50 浏览:404
kr脚本 发布:2025-01-19 20:17:41 浏览:518
帮我开启存储 发布:2025-01-19 20:17:39 浏览:813
s9存储缩水 发布:2025-01-19 20:08:06 浏览:335
2b2t的服务器编号是什么 发布:2025-01-19 19:58:55 浏览:874
androidstudio下载与安装 发布:2025-01-19 19:58:14 浏览:560
拉钩算法 发布:2025-01-19 19:58:14 浏览:866