2013-11-28 133 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