欢迎光临
我们一直在努力

C语言笔记:字符串反转,统计字母出现次数——题解

本文旨在记录 C语言代码初学者的学习历程并表达本人对代码的理解。
本文的内容包括:对C语言字符数组的应用——字符串反转,统计字母出现次数。

1.基本知识

C语言不存在字符串变量,但存在字符串这个概念。习惯上C语言用char数组+\\0表示字符串,\\0表示字符串的结束,不加它可能导致某些与字符串有关的函数越界。当然,可以不使用\\0示意结束,但需要自己手动规定结束。

char arr[]="hello";
char arr2[6]={'h','e','l','l','o'};

编译器会自动在末尾补\\0,以\\0结束的字符数组在C语言中就是字符串。

2.字符串反转

本题比较简单,在用数组保存数据后从后往前输出即可。

#include <stdio.h>

int main() {
int len = 4;
char arr1[len];
for (int i = 0; i < len; i++) {
scanf("%c", &arr1[i]);

}
for (int i = len – 1; i >= 0; i–) {
printf("%c", arr1[i]);
}
}

3.统计字母出现次数

开始前须知关于ASCII码的部分相关知识。本题用到两个字符数组。先用第一个数组储存输入的字符。之后定义一个长度尽可能大但不能过大的数组,并将它的初始值设为0,遍历第一个数组,,把字符强制转化成整型(即它对应的ASCII码),之后把ASCII码当作第二个数组的索引,令第二个数组对应位置的数值加一。最后,写一个遍历第二个数组的for循环,当检测到数值不为零时,按格式输出即可,即
printf(“%c=%d”,(char)arr2[i],arr2[i]);

#include <stdio.h>

int main() {
int len = 10;
char arr1[len];
for (int i = 0; i < len; i++) {
scanf("%c", &arr1[i]);
}
int arr2[265] = {0};
for (int i = 0; i < len; i++) {
int a = (int)arr1[i];
arr2[a]++;
}
for (int i = 0; i < 265; i++) {
if (arr2[i] != 0) {
printf("%c=%d ", (char)i, arr2[i]);
}
}
}

赞(0)
未经允许不得转载:171主机测评 » C语言笔记:字符串反转,统计字母出现次数——题解
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址