将字符串长度用于字符串指针时出现堆栈溢出错误

时间:2017-04-25 01:51:41

标签: c pointers c-strings string-length

目前正在创建一个C程序,使用指针和函数来反转名称。尝试在char * name上使用strlen()时出现堆栈溢出错误。我还没有完全创建该函数,因为我目前正在使用strlen()来解决这个问题。

#include <stdio.h>
#include <string.h>
void format_name();

int main(void)
{
    char str[256+1];
    char *name = &str[0];


    printf("Enter the first and last name: ");
    scanf("%[^\n]s", str);
    printf("formatting name\n");
    format_name (*name);

    printf("Formatted name: %s\n", str);

    return 0;
}



void format_name (char *name)
{
    int spacepos = 0;


    printf("Finding string length");
    int length = strlen(name);
    printf("Size of string = %d", length);

    for(p = 0; p <= length - 1; p++)
        {
            printf("Checking position %d", p);

            if(name[p] == ' ' && spacepos == 0)
                {
                    spacepos = p;
                    printf("first space found at pos %d", p);
                }
        }

}

0 个答案:

没有答案