- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我觉得这应该是一件容易的事,但我一直收到段错误。我正在尝试查找最后一次出现的字符“/”,然后在该字符后打印一个字符。
这主要是为了打印出一个文件,这样:
directory1/directory2/hello.txt
应该这样打印出来:
你好.txt
我正在尝试使用 strrchr 来执行此操作,但由于它会返回字符的最后一次出现,因此它会打印出以下内容:
/hello.txt
我以为我可以将字符指针提前一个斜线,然后打印它,但是我在这样做时遇到了段错误:
void print_path(char *dir_name)
{
char *c_ptr = strrchr(dir_name, '/');
*c_ptr = *c_ptr + 1;
printf("%s\n", c_ptr);
}
我也环顾四周并尝试做一个方法,我将 c_ptr
复制到一个临时变量,将一个添加到新的临时字符串,然后在末尾添加一个空字符,但这也导致了错误。
我该怎么办?
最佳答案
你应该做指针运算,这是错误的:
*c_ptr = *c_ptr + 1; // incorrect
应该是
c_ptr = c_ptr + 1;
或
c_ptr++;
或
c_ptr += 1;
在 *c_ptr = *c_ptr + 1
中,您取消引用指针并在字符串开头添加到先前的值,1
。
在strrchr
之后,c_ptr
会指向'/'
字符,即*c_ptr == '/'
所以
*c_ptr = *c_ptr + 1;
相当于
c_ptr[0] = c_ptr[0] + 1;
即
c_ptr[0] = '/' + 1;
之后,c_ptr[0]
包含字符 '0'
,因此 printf()
必须打印 0你好.txt
如果在源字符串中未找到子字符串,strrchr()
将返回 NULL
,因此您也应该检查一下。
你的程序的固定版本是
void print_path(char *dir_name)
{
char *c_ptr = strrchr(dir_name, '/');
if (c_ptr != NULL)
{
c_ptr = c_ptr + 1;
printf("%s\n", c_ptr);
}
}
关于c - 在 C 中将一个字符推进到 strrchr 之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28176166/
我正在自定义 phpUnderControl 构建文件以使用 symfony propel:build-sql 功能生成要为每个构建(不是每个测试)加载的 .sql 文件。我遇到的情况是,生成的 .s
我有 table : Article: ID | TITLE | CONTENT 1 | aaa+s | sdsd 2 | ccc+a | sdsda 3 | aaa+s | dsdsd 4
我创建了一个本地应用程序,它使用 ajax 从 SQL 数据库调用结果。 系统运行良好,但是如果使用 ' 进行某些搜索,则系统失败并且我收到以下错误“注意:数组到字符串的转换 in..” 这是我的 J
我在我的 PHP 应用程序中使用 propel ORM。 通过阅读文档,我不知道如何发出这种类型的请求: SELECT x FROM table where col1 = 'xxx' and not(
我正在尝试使用 Propel 1.6 使用自定义“order by”进行查询 select * from myObject ORDER BY FIELD(id, 3, 11, 7, 1) 这不起作用:
我有一个 MySQL 表,其中包含从用户到用户的所有消息: id | to_id /*user_id*/ | from_id /*user_id*/ 1 | 32 |
我正在使用 symfony 开始一个新项目很容易与 Doctrine 集成和 Propel ,但我当然需要做出选择.... 非常感谢。 编辑:感谢所有回复,有用的东西。这个问题没有真正正确的答案,所以
我有一个产品对象和评级对象,它们代表对产品的评级。评级有一个名为“value”的属性,它是一个从 1 到 5 的整数。 对于给定的产品,我想获得所有评级值的平均值。我知道如何获得所有评级: $prod
我正在通过 MySQL Server 5.5.28 使用与 Propel 1.6.7 集成的 Symfony 2.1.6 框架作为数据库 ORM,我在将数据库排序规则设置为 utf8_unicode_
我正在尝试使用 Propel 2 对数据库进行逆向工程。但是每次我尝试运行 model:build 命令时,我都会收到以下错误: [Propel\Generator\Exception\Invalid
我正在尝试获取 propel 中列的总和。我的代码 $c = new Criteria(); $c->add(valuePeer::OWNER_ID, $this->getId()); $c->add
我们有一个包含所有产品的表格和一个包含所有订购商品的单独表格。订购的商品基本上是已订购产品的副本,与其源产品相关(通过外键)和仅与订购商品相关的附加数据,如订购数量。 通过这种方式,我们确保了订单数据
有没有人建议使用外部 ORM,如 Doctrine/Propel 而不是 Zend Framework 中的默认 Zend_Db_Table? 我认为您的回答和理由对整个 ZF 社区都很有值(valu
我正在尝试按年份对现有表进行分区。(没有现有分区) alter table test_table PARTITION BY EXTRACT (year FROM date_c); 但是好像有一些错误
我有大型 MySQL 数据库。我想一次获取 100 行,直到处理完所有数据库。 protected function doEcho($msg){ static $time, $start;
我正在使用 Symfony 1.4.8 和 Mysql 5.5 运行时出现此错误 symfony 推进:构建全部 You have an error in your SQL syntax; check
我想将自定义 sql 子查询插入到常见的 Propel 标准中。子查询包含用户输入,因此必须对这些输入进行转义。我怎样才能实现这一点? 我有这样的东西(简化): $c = new Criteria()
我是一名优秀的程序员,十分优秀!