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;
}
简单模拟即可
3进制测试
10进制测试
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;
}
简单模拟即可
3进制测试
10进制测试
c语言字符串计算
这就要从字符型数据在内存中的存储方式来解释了。在C语言中,实际上字符型数据在内存中是以二进制形式存放的,并不是真正的把一个字符存进内存里。在对字符型数据进行相加减运算的时候,系统会首先会将char型数据以隐形的方式转化成int型数据再进行相加减运算的。因此,由字符型数据在内存的存储方式来看,字符型数据是可以进行数值运算的,对字符型数据做数字运算实际上就是对字符本身对应的ASSIC码进行相应的数值运算。
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;
}