2013-11-28 186 views
1

心中已經得到了這個:打印最後一個字符從字從字符數組

char file_name[50]; 
strncpy(file_name, dp2->d_name, sizeof(file_name2)); 
// put some words in it, for example "E348C", "E348", "E348A"...... 

,我需要從每個詞找到最後一個字符,後來檢查它,如果它是數字或字母.....但的話,你可以看到有長的不一樣....

我不知道如何獲得最後一個字符...

而且燒焦的變量FILE_NAME [50];可以定義爲char * file_name;我不在乎......

任何想法?

+8

你確實是知道的'strlen'功能?還要記住,數組從'0'到'length - 1'索引。 –

+2

哦,你必須小心,因爲如果源太長,'strncpy'不會在目的地添加終止的''\ 0''字符。所以你必須得到第一個來源的長度,然後*可能*目的地的長度。 –

+0

我希望沒有人發佈完整的解決方案。在這種情況下,一些提示和提示應該足夠了,從長遠來看,這將有助於OP不僅僅是完整的解決方案。提醒它 – PeterK

回答

2

編輯:看來這個問題已經在評論上述解決,但也許有人來在未來一個類似的問題...一起

請看評論。

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

int main(void) { 

    char file_name[50]; 

    char inp[] = "something3"; 

    strncpy(file_name, inp, sizeof(inp)); 

    printf("%s\n", file_name); 

    // strlen returns the length of a string. 
    char end_char = file_name[strlen(file_name)-1]; 

    printf("%c\n", end_char); 

    if (isdigit(end_char)) {  // checks if end_char is a number 
     printf("last character is a number\n"); 
    } 
    if (isalpha(end_char)){  // checks if end_char is a letter 
     printf("last character is a character\n"); 
    } 

return 0; 
} 

樣品輸出inp[] = "something3"

something3 
3 
last character is a number 

樣品輸出inp[] = "somethingX"

somethingX 
X 
last character is a character