字符串和整型转换的那些事儿

这篇具有很好参考价值的文章主要介绍了字符串和整型转换的那些事儿。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

整形数组如何转换成一个字符串?

总的来说,有两种思路。

思路一

uint8_t str[10] = {0};
    int arr[] = {1,2,3,4,5,6};
    sprintf(str,"%d%d%d%d%d%d",arr[0],arr[1],arr[2],arr[3],arr[4],arr[5]);
    printf(str);

这种想法非常局限,是直接使用sprintf(),怎么改进呢?用循环。

思路二

uint8_t str[10] = {0};
    int arr[] = {1,2,3,4,5,6};
    for(uint8_t i = 0; i < (sizeof(arr) / sizeof(arr[0])); i++)
    {
        sprintf((str + strlen(str)),"%d",arr[i]);
    }

这个循环的方式非常巧妙,利用strlen()作为不断增加的变化量,而当str赋初值都是0的时候,这些零对于字符串来说,相当于\0,那么此时strlen检测出来的数量必然是0,这是一种需要记住的方式。

普通的数字怎么转化成字符串?

直接使用sprintf()就好了。

 uint8_t str[10] = {0};
    int num = 25635;
    sprintf(str,"%d",num);
    printf(str);

有关于字符串常用的两个函数

strstr()

这个函数主要是看在一个第一个参数字符串中,是否有第二个参数字符存在。如果存在的话,那么就返回第二个参数字符在第一个参数字符串的数组下标。

这个函数一般来确定有没有某一个字符或者字符串是存在于第一个字符串之中的。

strstr是一个C语言的字符串处理函数,用于在一个字符串中查找指定子字符串的第一次出现位置。

该函数的原型如下:

c
char *strstr(const char *haystack, const char *needle);
haystack:要搜索的字符串,即被查找的源字符串。
needle:要查找的子字符串。
strstr函数会在 haystack 字符串中查找第一次出现的 needle 子字符串,
并返回该子字符串在 haystack 中的指针。如果未找到匹配的子字符串,则返回NULL。

以下是一个使用strstr函数的示例:

c
#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    char *result = strstr(str, "World");

    if (result != NULL) {
        printf("Found at index: %ld\n", result - str);
    } else {
        printf("Not found\n");
    }

    return 0;
}

strtok()

这个函数的主要作用是返回字符串中某一个字符之前的字符串的地址。相当于将前面的字符串切割了下来。

不过值得注意的是:其中的字符串一定要是字符数组。不能是字符串,否则操作会卡住。一定要是直接的数组,不能是数组当做一个*str参数传进来,这样的话数组就改变了性质,这样也会出现问题。

strtok是字符串处理函数,它的名称来自于 "string tokenization" 的缩写。

在C语言中,strtok函数用于将一个字符串分割成多个子字符串(tokens),并逐个返回这些子字符串。它可以根据指定的分隔符将原始字符串切割成多个部分。

strtok函数的原型如下:

c
char *strtok(char *str, const char *delim);
str:要分割的字符串,第一次调用时传入非空指针,后续调用传入NULL。
delim:分隔符字符串,用于指定分割子字符串的标志。
strtok函数首次调用时,会在给定的字符串中找到第一个分隔符之前的子字符串,并返回该子字符串的指针。之后的调用通过传入NULL作为第一个参数,可以继续返回后续的子字符串,直到没有更多的子字符串可供返回。

以下是一个使用strtok函数的示例:

c
#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello,World,Welcome";
    char *token = strtok(str, ",");

    while (token != NULL) {
        printf("%s\n", token);
        token = strtok(NULL, ",");
    }

    return 0;
}

第一次传入一个非空的指针,后续就直接传入NULL就可以了。

关于一些字符串的格式化字符

%hhu表示的是无符号的char,而其中%hu表示的是无符号的short,%u就是表示无符号的int。文章来源地址https://www.toymoban.com/news/detail-796138.html

到了这里,关于字符串和整型转换的那些事儿的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 汇编和c++初学,c++字符串加整型,导致的字符串偏移

    从汇编角度分析\\\"helloworld\\\"+1 “helloworld”+1对应 eax地址偏移加了1, 最终取的内存偏移地址,所以此时的test是elloword,后面调用iostream封装的字符串相加方法。 最终结果是 做的前端,如果是js,1会转换为字符串后相加,最近刚学c++和汇编,目前还是一知半解的,如有不对,请指

    2024年01月16日
    浏览(47)
  • C语言常量(整型、实型、字符型、字符串、符号常量)

    对于C语言常量,该文章有详讲,由于文章太长,可参考如下思维导图和目录,可通过目录选择自己所需要的内容阅读。 整型常量即整数,包括正整数、负整数和零。C语言中,整型常量可以用十进制、八进制、和十六进制表示。 十进制表示: 由数字0-9,正、负号组成,如3

    2024年02月07日
    浏览(41)
  • go语言int64整型转字符串

    go语言中string(int)会把int当成UTF-8的Unicode值,转换成对应的字符,标准库strconv是专门用来实现基本数据类型和其字符串表示的相互转换。 http://doc.golang.ltd/pkg/strconv.htm

    2024年02月12日
    浏览(48)
  • 【Golang】补码二进制字符串转整型

     在计算机科学中,原码、反码和补码是用来表示有符号整数的三种不同的二进制编码方式。下面将详细解释每一种编码方式的特点和用途。 原码  原码是最直观的有符号数表示方法。在原码表示法中,最高位(符号位)用来表示数的正负,0表示正数,1表示负数。正数的原

    2024年01月21日
    浏览(69)
  • Java 字节数组(byte[])和整型(int)的相互转换

          恰巧碰到了字节数组和整型的转换问题,特在此总结一下。将 int 按照小端法映射到 byte[] 中。即最低 8 位放在 byte[0] 中,依次类推。       这个实现起来比较简单,先保存最低的 8 位到 byte 数组中,然后不断的右移 8 位,每次保存低 8 位数据即可,参考代码:(

    2023年04月12日
    浏览(66)
  • 算法通关村第十二关——不简单的字符串转换问题

    字符串是我们在日常开发中最常处理的数据,虽然它本身不是一种数据结构,但是由于其可以包含所有信息,所以通常作为数据的一种形式出现,由于不同语言创建和管理字符串的方式也各有差异,因此针对不同语言特征又产生了很多问题。 常见的字符串转换题目,也就是在

    2024年02月10日
    浏览(45)
  • 不简单的字符串转换问题(算法村第十二关青铜挑战)

    709. 转换成小写字母 - 力扣(LeetCode) 给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 1 = s.length = 100 解 大写字母和小写字母的值之间存在固定的差异。例如,小写字母 a 的ASCII值为 97 ,而对应的大写字母 A 的ASCII值为 65 ,两者之差恰

    2024年01月25日
    浏览(45)
  • 实现对象转成字节数组(整型支持按位写入,字符串则按字节写入)

    闲着无聊,写了一个对象转换成byte[]的工具类,支持整型按位写入(大大节省空间),具体步骤如下: 1. 定义实体类和注解 2. 工具类     3. 测试结果     参考文章: https://www.cnblogs.com/Dotnet9-com/p/17981055

    2024年01月23日
    浏览(46)
  • Java实现对象转成字节数组(整型支持按位写入,字符串则按字节写入)

    闲着无聊,写了一个对象转换成byte[]的工具类,支持整型按位写入(大大节省空间),具体步骤如下: 1. 定义实体类和注解 2. 工具类     3. 测试结果     参考文章: https://www.cnblogs.com/Dotnet9-com/p/17981055

    2024年01月23日
    浏览(45)
  • java将list转为逗号隔开字符串,将逗号连接的字符串转成字符数组,​将逗号分隔的字符串转换为List​(Java逗号分隔-字符串与数组相互转换)

       参考:java将list转为逗号隔开字符串_51CTO博客_list转字符串逗号隔开 Java将字符串转化为数组_java 字符串转数组-CSDN博客  Java逗号分隔-字符串与数组相互转换-CSDN博客  

    2024年02月08日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包