小编Oos*_*uke的帖子

转换为空指针时,表达式必须是指向完整对象类型的指针

我正在尝试执行函数删除名称的扩展名是 wchar_t 或 char 类型,在 for() 内部我将 void 指针转换为 wchar_t 或 char 类型,然后出现错误:

表达式必须是指向完整对象类型的指针。

以下示例代码可单独显示问题实例。

int RemoveExtension(
    void    *p_str,     /*  Name                        */
    bool    isWchar     /*  true?wchar_t, false?char?*/
) {
    int ii, len;

    // Get length
    len = (isWchar) ? wcslen( (wchar_t *)p_str ) : strlen( (char *)p_str );

    // Remove extension
    /*?wchar_t?*/
    if( isWchar ) {

        for( ii = 0; ii < len; ii++ ) {
            if( L'.' == (wchar_t *)p_str[ii] ) {  //Error here
                (wchar_t *)p_str[ii] = L'\0';     //Error …
Run Code Online (Sandbox Code Playgroud)

c

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

C# - 如何通过linq对列表字符串编号进行排序?

我有一个列表,列表中的每个元素都是一个字符串,其中包含特定格式的日期和整数:yyyyMMdd_number.

List<string> listStr = new List<string> { "20170822_10", "20170821_1", "20170823_4", "20170821_10", "20170822_11", "20170822_5",
                                          "20170822_2", "20170821_3", "20170823_6", "20170823_21", "20170823_20", "20170823_2"};
Run Code Online (Sandbox Code Playgroud)

使用方法时 listStr.Sort();

结果如下:

20170821_1
20170821_10
20170821_3
20170822_10
20170822_11
20170822_2
20170822_5
20170823_2
20170823_20
20170823_21
20170823_4
20170823_6

预期产出:

20170821_1
20170821_3
20170821_10
20170822_2
20170822_5
20170822_10
20170822_11
20170823_2
20170823_4
20170823_6
20170823_20
20170823_21

方式:我认为每个字符串(day_number)将用下划线分割,然后按数字进行比较和排序.但在这种情况下,请建议我使用LINQ解决方案或更好的方法进行排序.

c# linq sorting string

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

标签 统计

c ×1

c# ×1

linq ×1

sorting ×1

string ×1