| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1756 人关注过本帖
标题:c简单的字符串操作!
只看楼主 加入收藏
yinlang204
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-8-15
收藏
 问题点数:0 回复次数:12 
c简单的字符串操作!
#include <stdio.h>
#include <string.h>

void trim(char * str1)
{
    char *temp = (char *)str1;
         if(temp)
         {
               temp++;
         }
    return ;
}

void main()
{
    char *str = "yinlang";
    printf("str = [%s]\n", str);
    trim(str);
    printf("str = [%s]\n", str);
}
我想要的结果是
str = [yinlang]
str = [inlang]
但是实际的结果是
str = [yinlang]
str = [yinlang]
为什么,怎么才能我要的答案呢,trim的返回值还必须是void;请高手帮忙!
搜索更多相关主题的帖子: 字符 void char temp str 
2008-08-15 11:37
p1s
Rank: 4
等 级:贵宾
威 望:10
帖 子:454
专家分:3
注 册:2005-11-4
收藏
得分:0 
trim函数做了什么么?temp是局部变量,而且也没有针对str1做什么修改啊
不知道LZ想要实现什么功能?
2008-08-15 19:33
asd6791868
Rank: 1
来 自:逆流
等 级:新手上路
帖 子:362
专家分:7
注 册:2008-7-27
收藏
得分:0 
这样行不行
#include <stdio.h>
#include <string.h>

void trim(char * str1)
{
    char *temp = str1;


               ++temp;

   printf("temp= [%s]\n", temp);
}

void main()
{
    char *str = "yinlang";
    printf("str = [%s]\n", str);
    trim(str);

}

─條路 :  ┈片天  ┈個人  ─瞬間:
2008-08-15 19:45
lovelyday
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-8-12
收藏
得分:0 
trim函数返回值为空,就不如不要了
#include <stdio.h>
void main()
{
    char *str = "yinlang";
    printf("str = [%s]\n", str);
    str++;
    printf("str = [%s]\n", str);
}
2008-08-15 21:07
csynyk
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2008-8-9
收藏
得分:0 
不知道楼主要做什么!

void trim(char * str1)               
{
    char *temp = (char *)str1;    // temp和str1的类型本来就是相同的,干嘛还要转换一下?---多此一举!
         if(temp)                 //temp表示指针指向的地址,只要最初的str1不为空,那temp++就永远不会位空!
         {
               temp++;      
         }
    return ;
}                               //整个函数没看出对str1做了什么处理!

void main()
{
    char *str = "yinlang";
    printf("str = [%s]\n", str);
    trim(str);
    printf("str = [%s]\n", str);
}

http://blog./csynyk
2008-08-15 21:16
csynyk
Rank: 1
等 级:新手上路
威 望:1
帖 子:114
专家分:0
注 册:2008-8-9
收藏
得分:0 
如果你想要的结果是不显示字符串的第一个字符,那很简单!
void main()
{
    char *str = "yinlang";
    printf("str = [%s]\n", str);
     printf("str = [%s]\n", str+1); //指针往后移一位!
}

http://blog./csynyk
2008-08-15 21:19
shenj
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-3-4
收藏
得分:0 
楼主是不是想要这样...用一个方法..
程序代码:
#include <stdio.h>
#include <string.h>

void trim(char **str1)
{
    *str1=(*str1)+1;
}

void main()
{
    char *str = "yinlang";
    printf("str = [%s]\n", str);
    trim(&str);
    printf("str = [%s]\n", str);
}
2008-08-15 22:00
raymond1010
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2008-8-9
收藏
得分:0 
你的trim并没有做任何返回动作,和main函数没有任何互动,当然达不到你希望达到的目的啦,哈哈
至少有个返回值嘛
就好比我提交你问题让你解决,(你就是函数,我是主函数),但是你没有提交结果给我,我怎么知道你的答案呢
2008-08-15 22:42
shenj
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-3-4
收藏
得分:0 
楼上

......你有没有运行过代码...
要求的答案和楼主想要的一样...
看不明不要乱说...

[[it] 本帖最后由 shenj 于 2008-8-16 01:32 编辑 [/it]]
2008-08-16 01:31
zhoufanking
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-8-10
收藏
得分:0 
void trim(char **str);

int main( int argc, const char *argv)
{
    char *str = "yinlang";
    printf("str = [%s]\n", str);
    trim(&str);
    printf("str = [%s]\n", str);
   
    system("PAUSE");   
    return 0;
}

void trim(char **str)
/*因为你要修改str的值,所以这里要将指向str的指针作为参数送到函数里进行处理。lz是不是忘了传值和传指针的不同*/
{
     *str += 1;
}
2008-08-16 09:01
快速回复:c简单的字符串操作!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016857 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved