标签: string-conversion

C++ 17 std :: to_chars是否添加了一个空终止符?

http://en.cppreference.com/w/cpp/utility/to_chars

引用没有说明任何内容,但是示例(对我来说)显然使用以null结尾的字符串,否则它怎么能知道在哪里结束,因为std::array::data只返回一个指针.

#include <iostream>
#include <charconv>
#include <array>

int main()
{
    std::array<char, 10> str{};
    std::to_chars(str.data(), str.data()+str.size(), 42);
    std::cout << str.data();
}
Run Code Online (Sandbox Code Playgroud)

不幸的是我无法自己测试,因为AFAIK还没有编译器支持它:https: //en.cppreference.com/w/cpp/compiler_support

编辑:忘记str用零初始化,但问题仍然相关.

c++ string-conversion c++17

14
推荐指数
1
解决办法
1908
查看次数

Java中的字符串到二进制输出

我想从字符串中获取二进制(011001 ..),但我得到[B @ addbf1,必须有一个简单的转换才能做到这一点,但我没有看到它.

public static String toBin(String info){
  byte[] infoBin = null;
  try {
   infoBin = info.getBytes( "UTF-8" );
   System.out.println("infoBin: "+infoBin);
  }
  catch (Exception e){
   System.out.println(e.toString());
  }
  return infoBin.toString();
}
Run Code Online (Sandbox Code Playgroud)

在这里我得到infoBin:[B @ addbf1
我希望infoBin:01001 ...

任何帮助将不胜感激,谢谢!

java string encoding string-conversion

10
推荐指数
1
解决办法
6万
查看次数

如何将st_mtime(从stat函数获取)转换为string或char

我需要将st_mtime转换为字符串格式以将其传递给java层,我尝试使用此示例http://www.cplusplus.com/forum/unices/10342/但编译器产生错误

从'long unsigned int*'到'const time_t*{aka long int const*}'的无效转换

初始化'tm*localtime(const time_t*)'[-fpermissive]的参数1

我做错了,如何在字符串表示中使用stat函数获取文件的时间.

请帮忙.

c datetime string-conversion android-ndk

10
推荐指数
2
解决办法
3万
查看次数

将字符串转换为数字,反之亦然

将字符串转换为等效数字的复杂性是什么,反之亦然?它是否会根据编程语言而改变?

从表面上看,需要遍历整个字符串以将其转换为数字,因此它是O(n),还是使用了一些类型转换?

当我写一个程序检查一个给定的数字是否是回文时,就会出现这种疑问.一种方法是将数字除以基数(此处为10),累加数字,并将它们放在一起.示例:309/10 = rem(9),30/10 = rem(0),3/10 = rem(3).我们得到903.

我采用的另一种方法是将这个数字转换成一个字符串,因为字符串有大量的成员函数来分割,反转等,所以代码更短更清晰,但这是最好的方法吗?

string algorithm math complexity-theory string-conversion

9
推荐指数
1
解决办法
1万
查看次数

你能把LPTSTR投射到BSTR吗?

将LPTSTR直接转换为BSTR是合法的吗?

根据我对BSTR的理解,直接将一个LPTSTR转换为BSTR会给你留下一个损坏的长度前缀.示例代码明确指出字符串文字不能存储到BSTR.任何人都可以向我确认LPTSTR/LPCTSTR不能在不破坏长度前缀的情况下直接转换为BSTR吗?

编辑:

我的困惑是看到在调用COM对象时使用它.事实证明,在编译COM dll时,会生成一个.tli文件来创建一个中间方法.此方法采用类型_bstr_t.该_bstr_t可以采取LPTSTR在其构造,所以一切工程进展顺利.

c++ windows com string-conversion

9
推荐指数
1
解决办法
6774
查看次数

如何将跟踪对象(sys.exc_info()[2]与sys.exc_traceback相同)作为字符串?

我有一个捕获所有异常的函数,我希望能够在此函数中将回溯作为字符串.

到目前为止,这不起作用:

def handle_errors(error_type, error_message, error_traceback):
    """catch errors"""
    import traceback
    error = {}
    error['type'] = error_type.__name__
    error['message'] = str(error_message)
    error['file'] = os.path.split(error_traceback.tb_frame.f_code.co_filename)[1]
    error['line'] = error_traceback.tb_lineno
    error['traceback'] = repr(traceback.print_tb(error_traceback))
    ### finalise error handling and exit ###

sys.excepthook = handle_errors
Run Code Online (Sandbox Code Playgroud)

error['traceback']是错误的界限.我甚至需要使用该traceback模块吗?

根据另一个模糊相似的问题,我试过:

error['traceback'] = repr(error_traceback.print_exc())
Run Code Online (Sandbox Code Playgroud)

...但这会产生错误:

Error in sys.excepthook:
Traceback (most recent call last):
  File "xxxxxxxxxxx", line 54, in handle_errors
    error['traceback'] = repr(error_traceback.print_exc())
AttributeError: 'traceback' object has no attribute 'print_exc'
Run Code Online (Sandbox Code Playgroud)

python string data-conversion string-conversion traceback

9
推荐指数
1
解决办法
8706
查看次数

如何将nsstring转换为cString?

我有一个nsstring(filePath),它有音频文件的路径.我想打开音频文件,所以我想将nsstring转换为Cstring.

  fopen([filePath cStringUsingEncoding:1], "r");
Run Code Online (Sandbox Code Playgroud)

是上面的行是否正确,因为我也可以使用fopen([filePath cString], "r");.在某些网站中,提到使用UTF8stringEncoding.哪个是字符串转换的正确NSString?

c iphone string-conversion ios

8
推荐指数
2
解决办法
1万
查看次数

检查输入是否是C++中的数字或字符串

我写了下面的代码来检查输入(answer3)是一个数字还是字符串,如果它不是一个数字,它应该返回"仅输入数字",但它返回相同的数字.请建议我一个解决方案.

#include <iostream>
#include <string>
#include <typeinfo>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

using namespace std; 
int main ()
{

string ques1= "Client's Name :";
string ques2 = "Client's Address :";
string ques3 = "Mobile Number :";

char answer1 [80];
string answer2;
int answer3;

     cout<<ques1<<endl;    
     cin>>answer1;      

     cout<<ques2<<endl;    
     cin>>answer2; 

     cout<<ques3<<endl;
     cin>>answer3;

       if (isdigit(answer3))
       {
              cout<<"Correct"<<endl;     

              }

        else
        {
          cout<<"Enter Numbers Only"<<endl;  

            }

 system("pause>null");
 return 0;  

}
Run Code Online (Sandbox Code Playgroud)

c++ string integer user-input string-conversion

8
推荐指数
2
解决办法
6万
查看次数

将字符串转换为整数类型T,检查溢出

目标是一个函数,给定包含数字的字符串和整数类型T,如果值适合没有溢出的类型,则返回成功+转换值,否则返回失败.

使用std::istringstream读取从字符串作品某些情况下,一个数字:

template<typename T>
std::pair<bool, T> decode(std::string s)
{
    T value;
    std::istringstream iss(s);
    iss >> std::dec >> value;
    return std::pair<bool, T>(!iss.fail(), value);
}

template<typename T>
void testDecode(std::string s)
{
    std::pair<bool, T> result = decode<T>(s);
    if (result.first)
        std::cout << +result.second;
    else
        std::cout << "ERROR";
    std::cout << std::endl;
}

int main()
{
    testDecode<int32_t>("12"); // 12
    testDecode<int16_t>("1000000"); // ERROR
    testDecode<int16_t>("65535"); // ERROR
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,对于8位类型(因为它们被视为chars)失败了:

    testDecode<uint8_t>("12"); // 49 !
Run Code Online (Sandbox Code Playgroud)

负数也被错误地接受并解析为无符号类型:

    testDecode<uint16_t>("-42"); // 65494 !
Run Code Online (Sandbox Code Playgroud)

这种功能由例如std.conv.toD和str::parse …

c++ templates string-conversion

7
推荐指数
1
解决办法
183
查看次数

C++ std::stoul 不抛出异常

我有一个函数来检查字符串是否有效unsigned int

unsigned long int getNum(std::string s, int base)
{
    unsigned int n;
    try
    {
        n = std::stoul(s, nullptr, base);
        std::cout << errno << '\n';
        if (errno != 0)
        {
            std::cout << "ERROR" << '\n';
        }
    }
    catch (std::exception & e)
    {
        throw std::invalid_argument("Value is too big");
    }
    return n;
}
Run Code Online (Sandbox Code Playgroud)

0xfffffffff但是,当我输入诸如(9 f's)之类的值时,errno仍然为 0(并且不会引发异常)。为什么会这样呢?

c++ string-conversion

7
推荐指数
1
解决办法
7149
查看次数