如何通过替换c中的另一个字符串来返回字符串

时间:2018-04-03 16:24:01

标签: c string

class Home extends React.Component {
  render() {
    return (
      <a onClick={() => { this.props.onCategoryChanged(1) }}>Change category to 1</a>
    )
  }
}

export default graphql(CATEGORY_QUERY, {
  options: ({ category }) => ({
    variables: { category }
  })
})(Home)

如何通过替换c中的另一个字符串来返回字符串?我无法使用函数替换字符串

2 个答案:

答案 0 :(得分:0)

您要做的是将s1中字符的值复制到s变量中。不只是设置一个等于另一个。使用strcpy或循环浏览s1中的字符,然后将其直接复制到s中的正确位置。

https://www.tutorialspoint.com/c_standard_library/c_function_strcpy.htm

这对我有用,而不使用strcpy

#include<stdio.h>

void str(char *s) {  
    char s1[100];
    printf("another string to replace:");
    scanf("%s",s1);  
    // not real safe but we know s and s1 have 100 characters.
    for(int i = 0; i < 100; i++) {
        s[i] = s1[i];
    }   
}

int main() {  
    char s[100],s2[100];  
    scanf("%s",s);  
    str(s);  
    printf("%s",s);
}

答案 1 :(得分:0)

关于你的代码有几点要说。

  1. 您无法使用=

  2. 复制字符串
  3. 返回类型错误。必须是char*

  4. scanf格式字符串错误。使用%s表示字符串。

  5. 您在函数中不需要额外的数组。只需scanf直接进入s

  6. 永远不要scanf("%s", ...始终限制scanf("%99s", ...

  7. 类似的东西:

    char* str(char *s) {  
        printf("another string to replace:");
        scanf("%99s",s);  
        return s;
    }
    
    void main() {  
        char s[100],s2[100];  
        scanf("%99s",s);    
        strcpy(s2, str(s));  
        printf("%s",s);
    }
    

    但是,我不确定您希望代码执行什么操作。现在,ss2只是以相同的字符串结尾。

    如果您只想要一个可以将新值读入s的函数,可以这样做:

    void str(char *s) {  
        printf("another string to replace:");
        scanf("%99s",s);  
    }
    
    void main() {  
        char s[100];  
        scanf("%99s",s);    
        str(s);
        printf("%s",s);
    }