Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将数组中的给定句子分离为单独数组中的单词_C_Arrays - Fatal编程技术网

C 将数组中的给定句子分离为单独数组中的单词

C 将数组中的给定句子分离为单独数组中的单词,c,arrays,C,Arrays,这是一个给定的实验室,实验室的目标是在一个字符串中获得用户的名字、中间名和姓氏。然后将该字符串分为3个其他字符串,分别包含名字、中间名和姓氏。我必须使用strlen()、strchr()和strcpy()。我知道代码不是最漂亮的,也不是最好的方法。我的教授希望我们这样做 #include <string.h> #include <stdio.h> #define FU_LIMIT 37 #define FI_LIMIT 13 #define MI_LIMIT 13 #d

这是一个给定的实验室,实验室的目标是在一个字符串中获得用户的名字、中间名和姓氏。然后将该字符串分为3个其他字符串,分别包含名字、中间名和姓氏。我必须使用strlen()、strchr()和strcpy()。我知道代码不是最漂亮的,也不是最好的方法。我的教授希望我们这样做

#include <string.h>
#include <stdio.h>

#define FU_LIMIT 37
#define FI_LIMIT 13
#define MI_LIMIT 13
#define LA_LIMIT 13


void fill_array(char full_ar[]);
void get_full_name(char full_ar[], char first_ar[]);
void ch_search();
int main(int argc, const char * argv[])
{
    char full_ar[FU_LIMIT], first_ar[FI_LIMIT], middle_ar[MI_LIMIT],     last_ar[LA_LIMIT];
int start;
    get_full_name( full_ar, first_ar);
for (start = 0; start < 1; start++ )
{

    printf("First: %s\n", first_ar);
    printf("Middle: %s\n", middle_ar);
    printf("Last: %s\n", last_ar);
    printf("%s\n", full_ar);

}

return 0;
}

void fill_array(char full_ar[]) //passed array and characters to fill with, returns number of writes
{
char start;
for (start = 0; start < 36; start++)
    //for loop starts here and performs a test
{
    full_ar[start] = 0;
}


}

void get_full_name(char full_ar[], char first_ar[]) //passed array to put name in, returns nothing
{
    printf("Please enter your First, Middle, and Last Name:\n");
scanf("%36[^\n]s", full_ar);

for( int i=0 ; i < 37 ; ++i ) full_ar[i] = toupper( full_ar[i] ) ;



 }

void ch_search()//passed array to search, char to search for, length of  array
{


}
#包括
#包括
#定义FU_限制37
#定义FI_限制13
#定义MI_限制13
#定义LA_极限13
空填充数组(char full_ar[]);
void get_full_name(char full_ar[],char first_ar[]);
无效Chu搜索();
int main(int argc,const char*argv[]
{
char full_ar[FU_LIMIT]、first_ar[FI_LIMIT]、middle_ar[MI_LIMIT]、last_ar[LA_LIMIT];
int启动;
获取全名(全名,第一名);
用于(开始=0;开始<1;开始++)
{
printf(“第一个:%s\n”,第一个);
printf(“中间:%s\n”,中间\u ar);
printf(“最后一次:%s\n”,最后一次);
printf(“%s\n”,完整);
}
返回0;
}
void fill_array(char full_ar[])//传递的数组和要填充的字符,返回写入次数
{
字符启动;
用于(开始=0;开始<36;开始++)
//for循环从这里开始并执行测试
{
全自动[启动]=0;
}
}
void get_full_name(char full_ar[],char first_ar[])//传递数组以放入名称,不返回任何内容
{
printf(“请输入您的名字、中间名和姓氏:\n”);
scanf(“%36[^\n]s”,完整);
对于(int i=0;i<37;++i)full_ar[i]=toupper(full_ar[i]);
}
void ch_search()//传递要搜索的数组、要搜索的字符、数组长度
{
}

因此,我要求的是使用函数strlen()、strhr()和strcpy()帮助将全名数组分为第一、中间和最后三个部分。

我假设字符串总是由空格分隔。在循环中(下限=0,上限=strlen()-1)搜索空格并维护最后一个非空格字符的索引,以便在找到空格时(使用strchr),可以在strcpy中使用开始和结束索引

你的问题非常广泛,试着从阅读一些有关函数的内容开始,然后问一个更具体的问题。这样做的最佳方式是什么?我真的应该在循环中使用strchr吗?是的。这里有更多的字符,因此StackOverflow将接受此注释。因此我将在for循环中执行(start=0;start<1;start++,strlen())