如何在char类型中省略引号用法?
我很难根据自己的需要调整功能。首先看一下这三个文件,注意我必须在main函数中调用f_纹理函数才能使其工作: 外部人员如何在char类型中省略引号用法?,c,function,quotations,C,Function,Quotations,我很难根据自己的需要调整功能。首先看一下这三个文件,注意我必须在main函数中调用f_纹理函数才能使其工作: 外部人员 #ifndef EXTERNS_H_ #define EXTERNS_H_ extern char t_about[100]; extern int friction; extern int f_texture(char* ,char*); #endif 功能性 #include <stdio.h> #include "externs.h" int mai
#ifndef EXTERNS_H_
#define EXTERNS_H_
extern char t_about[100];
extern int friction;
extern int f_texture(char* ,char*);
#endif
功能性
#include <stdio.h>
#include "externs.h"
int main()
{
f_texture("rough","friction");
printf("Friction: %d\n", friction);
f_texture("rough","t_about");
return 0;
}
#包括
#包括“externs.h”
int main()
{
f_纹理(“粗糙”、“摩擦”);
printf(“摩擦力:%d\n”,摩擦力);
f_纹理(“粗糙”、“t_左右”);
返回0;
}
B.c.职能
#include "externs.h"
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <stdio.h>
char t_about[100];
int friction;
int f_texture(char* texture,char* what_is_needed)
{
/*Checking if both values are present*/
assert(what_is_needed);
assert(texture);
/*Static array in order to prevent it's disappearance*/
memset(t_about, '\0', sizeof(t_about));
/*Configuring variables for desired texture*/
if (strcmp(texture, "smooth") == 0)
{
strcpy(t_about, "The surface is perfectly smooth, without any "
"protuberances.\n");
friction = 0;
}
else if (strcmp(texture, "rough") == 0)
{
strcpy(t_about, "Rough bumps can be feeled under my fingertips.\n");
friction = 4;
}
/*In case of absent keyword of desired texture it will crash the program*/
else
{
assert(!what_is_needed);
}
/*Returning desired value*/
if (strcmp(what_is_needed, "t_about") == 0)
{
int i=0;
while (t_about[i] != '\0')
{
printf("%c", t_about[i]);
i++;
}
}
else if (strcmp(what_is_needed, "friction") == 0)
{
return friction;
}
/*In case of absent keyword of desired value it will crash the program*/
else
{
assert(!what_is_needed);
}
return 0;
}
#包括“externs.h”
#包括
#包括
#包括
#包括
chart_约[100];
内摩擦;
int f_纹理(char*纹理,char*需要什么)
{
/*检查两个值是否都存在*/
断言(需要什么);
断言(纹理);
/*静态数组以防止其消失*/
memset(t_-about,'\0',sizeof(t_-about));
/*为所需纹理配置变量*/
if(strcmp(纹理,“平滑”)==0)
{
strcpy(t_)关于“表面非常光滑,没有任何瑕疵”
“突起。\n”);
摩擦=0;
}
否则如果(strcmp(纹理,“粗糙”)==0)
{
strcpy(t_约,“我的指尖下可以感觉到粗糙的凸起物。\n”);
摩擦力=4;
}
/*如果缺少所需纹理的关键字,则会使程序崩溃*/
其他的
{
断言(!需要什么);
}
/*返回期望值*/
if(strcmp(需要什么,t关于什么)=0)
{
int i=0;
while(t_about[i]!='\0')
{
printf(“%c”,t_关于[i]);
i++;
}
}
否则如果(strcmp(需要什么,“摩擦力”)==0)
{
返回摩擦;
}
/*如果缺少所需值的关键字,它将使程序崩溃*/
其他的
{
断言(!需要什么);
}
返回0;
}
现在我的问题是:如何重写这段代码,使调用f_纹理函数成为可能,而不在里面使用引号?我的意思是不用f_纹理(“abcd”,“efgh”),只需键入f_纹理(abcd,efgh)。我注意到,在我写了这段代码之后,这种方式是必需的。
提前谢谢。你可以这样做
char rough[]="rough";
char friction[]= "friction";
打电话
f_texture(rough, friction);
你可以这样做
char rough[]="rough";
char friction[]= "friction";
打电话
f_texture(rough, friction);
你可以这样做
char rough[]="rough";
char friction[]= "friction";
打电话
f_texture(rough, friction);
你可以这样做
char rough[]="rough";
char friction[]= "friction";
打电话
f_texture(rough, friction);
或
或
或
或
也可以使用一些宏:
#define ROUGH "rough"
#define FRICTION "friction"
#define T_ABOUT "t_about"
int main()
{
f_texture(ROUGH, FRICTION);
printf("Friction: %d\n", friction);
f_texture(ROUGH, T_ABOUT);
return 0;
}
也可以使用一些宏:
#define ROUGH "rough"
#define FRICTION "friction"
#define T_ABOUT "t_about"
int main()
{
f_texture(ROUGH, FRICTION);
printf("Friction: %d\n", friction);
f_texture(ROUGH, T_ABOUT);
return 0;
}
也可以使用一些宏:
#define ROUGH "rough"
#define FRICTION "friction"
#define T_ABOUT "t_about"
int main()
{
f_texture(ROUGH, FRICTION);
printf("Friction: %d\n", friction);
f_texture(ROUGH, T_ABOUT);
return 0;
}
也可以使用一些宏:
#define ROUGH "rough"
#define FRICTION "friction"
#define T_ABOUT "t_about"
int main()
{
f_texture(ROUGH, FRICTION);
printf("Friction: %d\n", friction);
f_texture(ROUGH, T_ABOUT);
return 0;
}
如果不想将字符串常量指定给变量或预处理器对象宏,另一个选项是使用预处理器函数宏,使用以下功能: C预处理器将把它转换为
f_texture("rough","friction");
如果不想将字符串常量指定给变量或预处理器对象宏,另一个选项是使用预处理器函数宏,使用以下功能: C预处理器将把它转换为
f_texture("rough","friction");
如果不想将字符串常量指定给变量或预处理器对象宏,另一个选项是使用预处理器函数宏,使用以下功能: C预处理器将把它转换为
f_texture("rough","friction");
如果不想将字符串常量指定给变量或预处理器对象宏,另一个选项是使用预处理器函数宏,使用以下功能: C预处理器将把它转换为
f_texture("rough","friction");
你只想叫它f_纹理()吗?你想做类似于
f_纹理(粗糙,摩擦)的事情吗代码>?将所需字符串保存到某个变量,然后将该变量传递给f_texture()。您不能,或者唯一的方法是声明一个char rough[6]=“rough”代码>和achar摩擦力[9]=“摩擦力”代码>之前。或者使用一些宏。@sujin但就我所能想象的,我必须将每个可能的字符串值保存到另一个变量中,以使其按照您建议的方式工作,这在我看来是非常不切实际的。您只想将其称为f_纹理()吗?您想这样做吗f_纹理(粗糙,摩擦)代码>?将所需字符串保存到某个变量,然后将该变量传递给f_texture()。您不能,或者唯一的方法是声明一个char rough[6]=“rough”代码>和achar摩擦力[9]=“摩擦力”代码>之前。或者使用一些宏。@sujin但就我所能想象的,我必须将每个可能的字符串值保存到另一个变量中,以使其按照您建议的方式工作,这在我看来是非常不切实际的。您只想将其称为f_纹理()吗?您想这样做吗f_纹理(粗糙,摩擦)代码>?将所需字符串保存到某个变量,然后将该变量传递给f_texture()。您不能,或者唯一的方法是声明一个char rough[6]=“rough”代码>和achar摩擦力[9]=“摩擦力”代码>之前。或者使用一些宏。@sujin但就我所能想象的,我必须将每个可能的字符串值保存到另一个变量中,以使其按照您建议的方式工作,这在我看来是非常不切实际的。您只想将其称为f_纹理()吗?您想这样做吗f_纹理(粗糙,摩擦)代码>?将所需字符串保存到某个变量,然后将该变量传递给f_texture()。您不能,或者唯一的方法是声明一个char rough[6]=“rough”代码>和achar摩擦力[9]=“摩擦力”代码>之前。或者使用一些宏。@sujin但就我所能想象的,我必须将每个可能的字符串值保存到另一个变量中,以使其按照您建议的方式工作,这在我看来是非常不切实际的。这正是我想要的!这是如此简单,我觉得阿克沃德由于没有弄明白自己;顺便问一下,有没有一种方法可以更自动地定义它,而不是键入每个定义?例如,在这个函数中定义空间,而不是定义可以放在里面的元素。你可以使用一些技巧