如何拆分字符串并存储不同的变量

时间:2011-06-10 17:24:08

标签: c

我需要帮助,因为我完全被困在这里。对克里斯主义的任何想法都会非常有帮助。

我有字符串说“猫狗动物” 我想要像“狗猫动物”这样的字符串

我有点震惊。我知道在C中我可以使用strtok,但这会破坏字符串。 我想知道如何以上述格式存储该字符串。

由于

2 个答案:

答案 0 :(得分:0)

您可以使用sscanf,然后从3个扫描的子字符串重建字符串。

答案 1 :(得分:0)

将字符串的前2/3视为环形缓冲区并旋转其中的字符。

  1. 查找最后一个破折号的索引
  2. 在索引
  3. 处保存字符
  4. 将所有前面的字符向下移动一个位置
  5. 将第2步中保存的char恢复到字符串前面。
  6. 重复步骤2到4,直到第一个破折号位于索引位置。
  7. 虽然它不是最有效的解决方案,但确实有效。 我发布了一些实际代码,但这听起来像是家庭作业。


    修改

    #include <string.h>
    void function( char * s )
    {
        int second_dash = ( strrchr(s, '-') - s );
    
        do
        {
           char t = s[second_dash];
           memmove( s + 1, s, second_dash);
           s[0] = t;
        }
        while ( s[second_dash] != '-' );
     }
    

    如果您的字符串库没有strrchr()或memmove(),则可以很容易地用循环替换它们。