请教各位高手、老手以及大师:
    现在要实现一个Richedit里添加gif表情,并且可以发送。我可以在其中添加表情,但是当我要发送这些表情如何去解析?比如当我添加“微笑”和“难过”,我以“#微笑##难过#”字符串发送,另一方的接受端也按照这种方式来解析,但是现在的问题是,当我再想添加表情或是删除表情,如何处理?比如我想在“微笑”和“难过”之间添加“高兴”表情,要如何知道我是在“微笑”和“难过”之间添加“高兴”表情,就类似QQ表情。
    概而言之,就是我如何知道我是在哪里添加一个表情,或是在哪里删除了一个表情。
    小弟的积分不多,所以给的分不多,希望各位不要介意。
    请大家帮忙,在此感谢!C++ 表情 richedit

解决方案 »

  1.   

    弄个索引号码
    不可以么?insert(int i) 指定插入位置按照这种思路?
      

  2.   

    回复sha_jinhao:
        比如在richedit里有一串字串“我是中国人”,现在我将光标移动“国人”之间,把一个表情差进去,然后用一个数组来保存已插入表情的符号,经过调试,每个插入表情的地方都会一个“?”,也就是无法表达的字符,所以用显示“?”,那么“我是中国人”也就是变成“我是中国?人”,我解析的时候,碰到“?”,如果是第一个,就取数组中下标为0的表情,以此类推,比如第一个是“微笑”,就把richedit中的字串解析为“我是中国#微笑#人”,现在我又把光标移动“我”之前,插入一个“高兴”表情之后,同时也在数组中添加“高兴”表情符号,这时字串变为“?我是中国?人”,我再次来解析,碰到第一个“?”,去找下标为0的表情符号,此时是“微笑”,而第二个是“高兴”,也就变成了“#微笑#我是中国#高兴#人”,而本应该是“#高兴#我是中国#微笑#人”
      

  3.   

    回复:pig357
        举个详细的例子。这样说太笼统了,谢谢!
      

  4.   


    ?换成字符串(索引)
    数组换成map
      

  5.   

    回复:stjay
        您的回答没能解决问题,因为字符串序号是随时都有可能变的,从而导致不能到map中找到正确的表情符号。
        希望大家回复的时候都把思路讲清楚,而不是随便两三句。这样还可以提高自己的逻辑思维和表达能力。
        谢谢!