1.大小写转换

//直接使用函数:toupper(),tolower()
  string str;
    cin >> str;
    int m = str.size();
    for (int i = 0; i < m; i++) {
        if (islower(str[i])) {
            // 将小写字母转换为大写字母
            cout << char(toupper(str[i]));
        } else {
            // 输出字符本身(如果不是小写字母)
            cout << str[i];
        }
    }
//isupper(),islower()是判断大小写的函数,返回的是一个整数
/*
另外toupper()函数的本质也是用阿斯克码
toupper(char x){
if(str[i]>'a'&&str[i]<'z')cout<<str[i]-'a'+'A'
return str[i];
}

*/

 

 

2.ASXII表

ASCII值

控制字符

ASCII值

控制字符

ASCII值

控制字符

ASCII值

控制字符

0

NUL

32

(space)

64

@

96

1

SOH

33

65

A

97

a

2

STX

34

66

B

98

b

3

ETX

35

#

67

C

99

c

4

EOT

36

$

68

D

100

d

5

ENQ

37

%

69

E

101

e

6

ACK

38

&

70

F

102

f

7

BEL

39

'

71

G

103

g

8

BS

40

(

72

H

104

h

9

HT

41

)

73

I

105

i

10

LF

42

*

74

J

106

j

11

VT

43

+

75

K

107

k

12

FF

44

,

76

L

108

l

13

CR

45

-

77

M

109

m

14

SO

46

.

78

N

110

n

15

SI

47

/

79

O

111

o

16

DLE

48

0

80

P

112

p

17

DCI

49

1

81

Q

113

q

18

DC2

50

2

82

R

114

r

19

DC3

51

3

83

X

115

s

20

DC4

52

4

84

T

116

t

21

NAK

53

5

85

U

117

u

22

SYN

54

6

86

V

118

v

23

TB

55

7

87

W

119

w

24

CAN

56

8

88

X

120

x

25

EM

57

9

89

Y

121

y

26

SUB

58

:

90

Z

122

z

27

ESC

59

;

91

[

123

{

28

FS

60

92

\

124

|

29

GS

61

=

93

]

125

}

30

RS

62

94

^

126

~

31

US

63

?

95

127

DEL

3.字符,字符串的输入问题

🤡

1. cin.getchar()

  • 用法cin.getchar() 是从输入流中读取一个字符,并返回其 ASCII 值作为整数。它不需要参数,会直接从输入流中读取下一个字符,包括空格、换行符等。

  • 行为:它会读取输入流中的下一个字符,无论是什么类型的字符(包括空格、换行符等),并且不会丢弃换行符。

  • 示例

    char ch;
    ch = cin.getchar();

2. cin >> ch

  • 用法cin >> ch 从输入流中读取一个字符并将其存储在变量 ch 中。它会忽略空格和换行符并在遇到第一个空格或换行符时停止读取

  • 行为:它会读取输入流中的下一个非空格、非换行符的字符,通常用于读取单个单词或单个字符。

  • 示例

    char ch;
    cin >> ch;

区别总结:

  • 字符处理

    • cin.getchar() 可以直接读取包括空格和换行符在内的任意字符,并且返回的是 ASCII 值。
    • cin >> ch 只会读取下一个非空格、非换行符的字符,通常用于单词或单字符的读取。
  • 输入流处理

    • cin.getchar() 会直接读取输入流中的下一个字符,不会忽略空格和换行符。
    • cin >> ch 在读取字符时会忽略空格和换行符,直到遇到第一个空格或换行符为止。

🥐

string str;
cin>>str;
//此时,输入的str遇换行空格即停止
getline(cin,str);//整行输入
//此时,一直输入,直到遇到回车换行符
/*
适用场景:

cin >> str; 适用于读取简单的单词或数字,例如处理简单的命令行输入或者读取简单的数据。

getline(cin, str); 适用于读取整行文本,包括可能包含空格的情况,例如处理文件中的文本行或者读取用户输入的完整句子。

处理换行符:

cin >> str; 不会读取换行符,即使用户输入换行符,它也会停止读取,换行符会留在输入流中。这可能导致在后续的输入操作中出现问题。

getline(cin, str); 会读取整行,包括换行符,并将换行符从输入流中移除,这样可以避免后续输入操作的问题。

*/

4.ignore——忽略函数

忽略函数,主要是用来清除缓冲区的换行符,空格,剩余字符什么的,特别是第一行读取剩下的换行符,被ignore之后,可以确保第二行的输入

注意事项:

  • 参数和行为cin.ignore() 默认会忽略一个字符,如果需要更灵活的控制,可以传递参数指定要忽略的字符数或者特定的终止字符。

  • 换行符处理getline() 通常会在读取到换行符时停止,并将换行符从输入流中移除。cin.ignore() 可以确保这些换行符不会干扰下一次输入操作。

5.将字符串a复制到b

#include<cstring>
strcpy(a,b);//将b复制到a
//手动复制
void fun(char a[],char b[]){
   int i=0;
    while(b[i]!='\0'){
       a[i]=b[i];
        i++;
    }
    a[i]='\0';
}

6.求字符串的长度

/* 1 . 使用strlen
需要库头<cstring>
求出的字符串长度不包括终止的\0;
*/
或者是使用<string>自带的,int m=a.length();

 

posted on 2024-06-18 11:25  fafrkvit  阅读(4)  评论(1编辑  收藏  举报