2015-10-25 56 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()) –

相關問題