#include<stdioh>
void func(char ,char B);
void main()
{
char A[10];
char B[10];
scanf("%s",A);
func(A,B);
printf("%s\n",B);//输出B
}
void func(char A,char B)
{
printf("%c\n",A[0]);
B[0]=A[1];
B[1]='\0';//字符串结尾为\0;
}
c语言是没法把字符串转换成对应函数的,c语言是结构化语言,程序怎么执行在编译时已经确定,没法像c#之类的托管代码高级语言能够动态绑定或者叫后期绑定。因为托管代码有运行时去选择执行,而c语言编译后的可执行文件为 *** 作系统直接调用了,所以没法动态绑定。
#include <stdioh>
#include <stringh>
#include <malloch>
void niXuArr(char arr[]);
char niXuPoint(char p);
int main(void)
{
char arr[] = {"abcdefghigk"}, p = "you are the first";
printf("逆序前:%s\n逆序后:", arr);
niXuArr(arr);
printf("%s\n", arr);
printf("逆序前:%s\n逆序后:", p);
p = niXuPoint(p);
printf("%s\n", p);
return 0;
}
void niXuArr(char arr[])
{
int i = 0;
char temp = 0;
for(i = 0; i < strlen(arr) / 2; i++)
{
temp = arr[i];
arr[i] = arr[strlen(arr) - 1 - i];
arr[strlen(arr) - 1 - i] = temp;
}
}
char niXuPoint(char p)
{
char pHead = NULL, pTail = NULL, temp = 0;
int i = 0;
pHead = (char)malloc(strlen(p));
pTail = p + strlen(p) - 1;
p = pHead;
for(i = 0; i < strlen(p); i++)
{
pHead++ = pTail--;
}
pHead = '\0';
return p;
}
可以调用
例如
char str[100]={0};
gets(str);
if (strcmp(str,"mat x")==0)
{
mat(x);
}
大体上就是这样
具体的 函数的参数什么的 需要你自己从上面的字符串里解析
在C语言中,数组作为参数,进行传递时,传递的是指针 ,换句话说,字符数组作为参数,进行传递时,传递的是字符数组的起始地址,相当于一个字符指针,两者没有区别。比如下面的代码:
#include <stdioh>void f1(char s) { printf("%s\n", s);}
void f2(char sa[]) { printf("%s\n", sa);}
int main()
{
char rsa[] ="world hello";
f1(rsa);
f2(rsa);
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)