2015-10-25 28 views
-4

这是给定的实验室,实验室的目标是将用户的第一个,中间和最后一个名称全部放在一个字符串中。然后将字符串分成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 
{ 


} 

那么,我问是使用函数strlen的帮助(),和strchr()和strcpy(),以帮助全名数组首先,中,最后分开。

+0

你的问题非常广泛,试着从阅读有关功能的问题开始,然后询问更具体的问题。 –

回答

0

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

+0

什么是最好的方式来做到这一点?我应该在我的循环中实际使用strchr吗? –

+0

是的。这里有更多的字符,所以StackOverflow会接受这个评论。 – nicomp

+0

所以我会在我的循环 (start = 0; start <1; start ++,strlen()) –

相关问题