當前位置:首頁 » 編程語言 » 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-20 00:18:39 瀏覽:803
android背單詞源碼 發布:2025-01-19 23:57:21 瀏覽:727
領動配置怎麼樣 發布:2025-01-19 23:56:35 瀏覽:83
python造數據 發布:2025-01-19 23:51:31 瀏覽:903
linux下卸載mysql 發布:2025-01-19 23:40:34 瀏覽:339
linuxweb路徑 發布:2025-01-19 23:25:08 瀏覽:941
福建電信伺服器ip地址 發布:2025-01-19 23:07:24 瀏覽:648
伺服器怎麼製作公告欄 發布:2025-01-19 23:06:23 瀏覽:874
英雄聯盟皮膚源碼 發布:2025-01-19 22:56:14 瀏覽:95
三星手機忘記解鎖密碼怎麼辦 發布:2025-01-19 22:45:43 瀏覽:292