首页 > 其他分享 >洛谷 P1957

洛谷 P1957

时间:2023-12-21 22:12:10浏览次数:39  
标签:P1957 const string cin char sprintf str 洛谷

题目链接:

在每一行,因为不确定第一个输入数据的类型,所以要用字符串输入。
值得注意的是,\(\sf sprintf\)的函数原型为
int sprintf(char *buffer, const char *format [, argument] … );,其第一个参数是char*类型,因此在使用\(\sf sprintf\)时一般使用字符串数组char str[]而不用\(\sf string\)。

补充:const char* 转换成char*
有时我们需要把string类型的字符串转换成char*,但是string.c_str()等到的结果是const char*类型而不是char*类型,转换方法就是先把string转换成const char*,然后用sprintf把const char*转换成char*

示例:

string str;
char* strchar;
const char* strC = str.c_str();
sprintf(strchar,"%s",str.c_str());

AC代码:

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, x, y;
    cin >> n;
    while (n--) {
        char s[6], p[100]; char k;
        cin >> s;
        if (isalpha(s[0])) {
            k = s[0];
            cin >> x >> y;
        }
        else {
            x = atoi(s);
            cin >> y;
        }
        if (k == 'a') sprintf(p, "%d+%d=%d", x, y, x + y);
        else if (k == 'b') sprintf(p, "%d-%d=%d", x, y, x - y);
        else sprintf(p, "%d*%d=%d", x, y, x * y);
        cout << p << "\n" << strlen(p) << "\n";
    }
    return 0;
}

x = atoi(s)可用sscanf(s, "%d", &x)替代。

标签:P1957,const,string,cin,char,sprintf,str,洛谷
From: https://www.cnblogs.com/pangyou3s/p/17920235.html

相关文章

  • 【洛谷】P1678 烦恼的高考志愿 (二分)
    题目描述在这里:P1678这道题用二分的思路就很容易想出,先把学校分数排好序,根据不满意度的定义,我们只需要每次找到第一个大于学生成绩的学校分数,然后再和最后一个小于学生分数的院校分数分别与学生成绩做差再打绝对值进行比较,取最小的一个累加到ans里就好啦代码如下#include<iostr......
  • 【洛谷】P1024 [NOIP2001 提高组] 一元三次方程求解 (二分)
    题目描述见此:P1024如何求一个方程的根呢qwq首先,根是什么,函数y=f(x)有零点⇔方程f(x)=0有实数根⇔函数y=f(x)的图象与x轴有交点。回顾我们高一学过的一个定理:零点存在性定理:如果函数y=f(x)在区间[a,b]上的图象是连续不断的一条曲线,并且有f(a)·f(b)<0,那么,函数y=f(x)在区间(a,b)......
  • 【洛谷】P1873 [COCI 2011/2012 #5] EKO / 砍树 (二分)
    题目描述见:P1873思路比较明确qwq因为答案显然满足单调性:当x超过某个数一定是错的(收集的木材大于m),而小于x一定是对的,并且x是从0一直递增。故我们只需二分法找到x。直接看代码吧qwq精髓是check函数直接模拟题目要求ww#include<iostream>usingnamespacestd;#defineMAXN100......
  • [排序,贪心,置换环]洛谷P1327&&P8637,双倍经验
    前置知识:置换环,最小交换次数https://blog.csdn.net/yunxiaoqinghe/article/details/113153795?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%9C%80%E5%B0%91%E4%BB%BB%E6%84%8F%E4%BA%A4%E6%8D%A2%E6%8E%92%E5%BA%8F%E8%AF%81%E6%98%8E%E7%94%A8%E7%BD%AE%E6%8D......
  • 「杂题乱刷」洛谷P9533
    题目链接诈骗题。容易证明,翻转任意一个“灵异区间”时,整个序列的“灵异区间”的数量总数都不会变,因此我们直接输出原数列的“灵异区间”的总数即可。参考代码:点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?*......
  • 「杂题乱刷」洛谷P2426
    题目链接一道简单区间dp。设\(dp_i\)为删到第\(i\)个数时的最大值,状态转移方程也挺好写的。时间复杂度\(O(n^2)\)。参考代码:点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?*/#include<bits/stdc++.h......
  • 【洛谷 P1923】【深基9.例4】求第 k 小的数(快速排序)
    【深基9.例4】求第k小的数题目描述输入(且为奇数)个数字(),输出这些数字的第小的数。最小的数是第小。请尽量不要使用nth_element来写本题,因为本题的重点在于练习分治算法。输入格式输出格式样例#1样例输入#15143215样例输出#12思路先快速排序,然后通过数组索引访......
  • 洛谷 P9936 [NFLSPC #6] 等差数列
    洛谷传送门对\((i,a_i)\)求出下凸包,那么一条凸包的斜率非正的切线是候选答案。只考虑切凸包上第\(i\)个点的切线,那么斜率的左边界是过凸包第\(i\)和第\(i+1\)个点的直线斜率,右边界是过凸包第\(i-1\)和第\(i\)个点的直线斜率。最优方案的切线斜率一定要么贴着左......
  • 洛谷P1824 进击的奶牛 题解 二分答案
    题目链接:https://www.luogu.com.cn/problem/P1824题目大意:本题相当于在\(n\)个数中选\(c\)个数,使得这\(c\)个数中相差最小的两个数之差尽可能地大。解题思路:我们首先可以给\(a_1\sima_n\)从小到大排一下序(这里有点贪心的思想,你会发现很多涉及贪心的问题在排序之后解......
  • 洛谷 P1217
    原题链接:一开始的思路:把数字转换成字符串类型并将字符串反转,若反转后的字符串和原来的字符串一致且该数是质数,则是回文质数。#include<bits/stdc++.h>usingnamespacestd;boolisPrime(intx){if(x<2)returnfalse;for(inti=2;i<=x/i;i++){......