首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从char*中的整数填充vector <int>

从char中的整数填充vector <int> 是一个编程问题,需要使用C++编程语言。以下是一个简单的示例,说明如何从char中提取整数并将其填充到vector <int>中:

代码语言:cpp
复制
#include<iostream>
#include<vector>
#include <cstring>

std::vector<int> extractIntsFromChar(char* str) {
    std::vector<int> result;
    int num = 0;
    bool isNegative = false;

    for (int i = 0; str[i] != '\0'; ++i) {
        if (isdigit(str[i])) {
            num = num * 10 + (str[i] - '0');
        } else if (str[i] == '-') {
            isNegative = true;
        } else {
            if (isNegative) {
                num = -num;
            }
            result.push_back(num);
            num = 0;
            isNegative = false;
        }
    }

    if (isNegative) {
        num = -num;
    }
    result.push_back(num);

    return result;
}

int main() {
    char str[] = "10 20 -30 40 -50";
    std::vector<int> ints = extractIntsFromChar(str);

    for (int i = 0; i < ints.size(); ++i) {
        std::cout<< ints[i] << " ";
    }

    return 0;
}

这个示例中,我们定义了一个名为extractIntsFromChar的函数,它接受一个char类型的参数,并返回一个包含提取的整数的vector<int>。在main函数中,我们创建了一个char类型的字符串,其中包含一些整数,并将其传递给extractIntsFromChar函数。然后,我们遍历vector<int>并打印其中的整数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

整数1出现次数(1到n整数1出现次数)

题目描述 求出1~13整数1出现次数,并算出100~1300整数1出现次数?为此他特别数了一下1~13包含1数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。...ACMer希望你们帮帮他,并把问题更加普遍化,可以很快求出任意非负整数区间中1出现次数(1 到 n 1出现次数)。...解题思路 三种解法: 法一:依次遍历每个数,判断每个数里面是否包含1 法二:同法一,将数字转成字符串,直接判断 法三:归纳法 设N = abcde ,其中abcde分别为十进制各位上数字。...——参考牛客网@藍裙子百合魂 参考代码 法一: public class Solution { public int NumberOf1Between1AndN_Solution(int n...(int n) { int res = 0; int cur = 0, before = 0, after = 0; int i = 1;

99420

整数1出现次数(1到n整数1出现次数)_31

1.总结规律 思路: 1.对于整数n,我们将这个整数分为三部分:当前位数字cur,更高位数字high,更低位数字low,如:对于n=21034,当位数是十位时,cur=3,high=210,low=4。...我们个位到最高位 依次计算每个位置出现1次数: 1当前位数字等于0时,例如n=21034,在百位上数字cur=0,百位上是1情况有:00100~00199,01100~01199,……,20100...4)这个方法只需要遍历每个位数,对于整数n,其位数一共有lgn个,所以时间复杂度为O(logn)。...链接网址(包括求1~n所有整数2,3,4,5,6,7,8,9出现所有次数) 通过使用一个 位置乘子m 遍历数字位置, m 分别为1,10,100,1000…etc....m=100时,百位数前缀为3141,当百位数大于1时,为3142*100,因为当百位数大于1时,前缀可以为0,即百位数可以100到199,共100个数;当百位数不大于1时,为3141*100;如何判断百位数是否大于

91910

14.7 Socket 循环结构体传输

在上述内容笔者通过一个简单案例给大家介绍了在套接字编程如何传递结构体数据,本章将继续延申结构体传输,在某些时候例如我们需要传输一些当前系统进程列表信息,或者是当前主机目录文件,此时就需要使用循环结构体传输功能...14.7.1 服务端实现多条结构体传输方式与单条原理上一致,只是多条结构体在传输时需要提前告知服务端我需要分几次将结构体传输给对方,因为数据包最大单次可发送8192字节,所以如果结构过多则需要分批次进行传输...,如下是服务端实现代码片段,在代码首先我们接收客户端发来循环次数,该次数是一个字符串类型,为了能用于循环体内,需要通过atoi(count)将其转换为一个整数,接着就是在循环体内不断地调用recv...方式接收结构体链表,并通过sprintf()函数将循环次数由整数格式化为字符串,并将次数发送给服务端,当服务端接收到发送次数后会等待客户端向其发送对应数量结构体,此时客户端只需要send...std::vector vect; for (int x = 0; x < 10; x++) { message ptr; // 填充参数 sprintf(ptr.HostName

17730

站在巨人肩膀上,C++最常用200个函数

a到a+7有8,返回true 否则返回false //反转函数: reverse(a, a + 7);//反转a到a+7元素 //填充替换函数: fill(a, a + 7, 4);//填充函数...= strchr(a, 'l') - a; //返回a找字符l出现首地址 没有返回NULL int xiabiao2 = (char*)memchr(a, 'l', 7) - a...; //返回a前7个字符找字符l出现首地址 没有返回NULL strspn(a, b);//比较a和b 第一位开始,返回从头数相等长度 strstr(a, b)-a;//返回...向下取整 返回f向下取整整数 e = ceil(f);//向上取整 返回f向上取整整数 a = abs(b);//int类型 返回b绝对值 e = fabs(f);//double类型...(2,3,str2) //str1第二位开始(下标0开始算),长度3位,和str2整体比较 //重载2不允许第一二个参数为空 //连接: str1 += str2; //长度:

19350

OpenSSL 使用AES对文件加解密

以下是 CBC 模式详细概述: 初始向量 (Initialization Vector, IV): 在 CBC 模式,每个消息第一个块使用一个初始向量 (IV)。...填充: 如果明文长度不是块大小整数倍,需要进行填充。常见填充方案有 PKCS#7 填充。 安全性: 当使用 CBC 模式时,密文块顺序对安全性至关重要。...aes; // 填充数据为AES_BLOCK_SIZE整数char* aesIn; int blockNum, aesInLen; // 设置加密密钥 if (AES_set_encrypt_key...), 4, srcFile); inlen -= 4; src = (char*)calloc(inlen, 1); // 加密后文件获取填充字节数 size = fread(src,...), 4, srcFile); inlen -= 4; src = (char*)calloc(inlen, 1); // 加密后文件获取填充字节数 size = fread(src,

1K20

C++教程(凯格尔训练法教程)

//2 int i1;//8 int 起始地址按照字节对齐原理应该是它长度4整数char c3;//12 short s4;//12 short 起始地址按照字节对齐原理应该是它长度2整数倍...17.1 流类和对象 输入流-输入设备流向内存流。 输出流-内存流出设备流。 内存缓冲区-用来存放流数据。...常用 hex 以十六进制形式输出整数 oct 以八进制形式输出整数 fixed 以普通小数形式输出浮点数 scientific 以科学计数法形式输出浮点数 left 左对齐,即在宽度不足时将填充字符添加到右边...,中间由填充字符填充 ios::dec 设置整数基数为 10 ios::oct 设置整数基数为 8 ios::hex 设置整数基数为 16 ios::showbase 强制输出整数基数...eg:编写一个程序,将文件 i.txt 整数倒序输出到 o.txt。

2.8K20

C++教程(最全)「建议收藏」

//2 int i1;//8 int 起始地址按照字节对齐原理应该是它长度4整数char c3;//12 short s4;//12 short 起始地址按照字节对齐原理应该是它长度2整数倍...17.1 流类和对象 输入流-输入设备流向内存流。 输出流-内存流出设备流。 内存缓冲区-用来存放流数据。...常用 hex 以十六进制形式输出整数 oct 以八进制形式输出整数 fixed 以普通小数形式输出浮点数 scientific 以科学计数法形式输出浮点数 left 左对齐,即在宽度不足时将填充字符添加到右边...*right 右对齐,即在宽度不足时将填充字符添加到左边 setbase(b) 设置输出整数进制,b=8、10 或 16 setw(w) 指定输出宽度为 w 个字符,或输人字符串时读入 w 个字符...eg:编写一个程序,将文件 i.txt 整数倒序输出到 o.txt。

2.5K30

【未完成】1050 螺旋矩阵 (25 分)

所谓“螺旋矩阵”,是指左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵规模为 m 行 n 列,满足条件:m×n 等于 N;m≥n;且 m−n 取所有可能值最小值。...输入格式: 输入在第 1 行给出一个正整数 N,第 2 行给出 N 个待填充整数。所有数字不超过 10​4​​,相邻数字以空格分隔。 输出格式: 输出螺旋矩阵。每行 n 个数字,共 m 行。...N整数部分开始,往前推一直到1,找到第一个满足N % n== 0,m值等于N/n~将N个给定值输入数组a,并将a数组值按非递增排序,接着建立m行n列数组b,填充时按层数填充,一个包裹矩阵口字型为一层...,计算螺旋矩阵层数level,如果m值为偶数,层数为m/2,如果m为奇数,层数为m/2+1,所以level = m / 2 + m % 2;因为是左上角第1个格子开始,按顺时针螺旋方向填充,所以外层...for循环控制层数i0到level,内层for循环按左上到右上、右上到右下、右下到左下、左下到左上顺序一层层填充,注意内层for循环中还要控制t <= N – 1,因为如果螺旋矩阵中所有的元素已经都填充完毕

44930
领券